What are AWS Step Functions? (and why you should love them)

Поділитися
Вставка
  • Опубліковано 28 вер 2024

КОМЕНТАРІ • 91

  • @ianlaw4333
    @ianlaw4333 5 місяців тому

    Hey man
    Just wanna give you a shoutout, I am currently preparing for my SAA exam and found your videos super useful and I really love the way you explain the architectures with examples. Thank you so much !!!

  • @zenithwogwugwu6709
    @zenithwogwugwu6709 Рік тому

    This is really a great demonstration, I'm sold on step functions!🙌

  • @granitetie
    @granitetie Рік тому +3

    I'm really not convinced of the value prop of step functions. He's saying, rather having complex code to handle the possible failure paths, it's very easy to use ASL language. Except, if you wrote that logic in code, it wouldn't be as nearly as complex as he implies. You could fit it all in a single code file using a language that other devs would already understand. If you used step functions, you're basically using an amazon specific proprietary "language" that is modeled using json (yuck). You lose the ability to run and test this logic locally (without tools to mock AWS functionality, which I would say are leaky abstractions). To even get to the point where you setup your dev environment to run this code you'll have needed to talk to the devops team to get you setup with a personal dev account in AWS. How can one say with a straight face that this is a simpler development workflow than just writing the service in normal non-proprietary code?

    • @Atpugtihsrah
      @Atpugtihsrah Рік тому

      Agree with you. This was exactly what I was thinking while going through the video. I'll watch the entire series and then see if StepFunctions really make sense (maybe I didn't understand the pros/cons of it deep enough)
      Regarding the state saving and starting from the "failed/exception" state is considered, this can easily be done by saving the state in a DDB and reading the state & resuming from it in the next run.

  • @George-bi8sj
    @George-bi8sj 3 роки тому +2

    Brilliant, such a simplified explanation that even an idiot such as myself can understand. Thank you!

    • @BeABetterDev
      @BeABetterDev  3 роки тому +1

      Thanks George! Glad you found this useful.

  • @DileepMemories
    @DileepMemories 2 роки тому +1

    Please give clarity on what is TLDR, waiting for your reply

  • @TomerBenDavid
    @TomerBenDavid 4 роки тому +1

    Splendid 👌

  • @senninrendan
    @senninrendan 2 роки тому +1

    "Step Function What are you doing? Step Function did you just access my Resources?"

  • @alexovsianycoff6556
    @alexovsianycoff6556 2 роки тому

    Thanks for the Video! Which soft are you using for making presentations?

  • @sagarsinghrajpoot6788
    @sagarsinghrajpoot6788 4 роки тому +1

    Very useful :) Liked and Subscribed :)

    • @BeABetterDev
      @BeABetterDev  4 роки тому

      Thank you and welcome to the channel!

  • @user779hjg45
    @user779hjg45 4 роки тому +1

    0:23 ok, where is the link?

    • @gsminfy
      @gsminfy 4 роки тому

      ua-cam.com/video/s0XFX3WHg0w/v-deo.html

  • @elgs1980
    @elgs1980 3 роки тому

    But you have to couple your business to a new layer of dependencies which depends on how you justify it.

  • @fidgetspinner343
    @fidgetspinner343 5 років тому +18

    You see, here is an example if you needed it that quality shines through in the end, it is so tough starting off a UA-cam channel and keeping going at look to gain those views and subscribers but a tweet today from from Jeff Barr, the king of AWS!! Bravo and keep up the great content!

  • @satyak1337
    @satyak1337 2 роки тому +2

    I am working on a appointment app which require checking time slots and credit card payment. Does it make sense to use step function or should i do this in single lambda function ?

    • @BeABetterDev
      @BeABetterDev  2 роки тому +1

      Hi Satya, at a quick glance Step Functions seem like a good option for your use case.

  • @StockDC2
    @StockDC2 2 роки тому +4

    Hello, you mentioned that step functions help when exceptions are thrown but using your diagram, couldn't the same model work using the "conventional" method? You could set up a DLQ on the pin authorization service so that when it fails, a message gets thrown into the DLQ which the pin authorization service could try to process again without having to write to DynamoDB?

  • @RahulGupta-sv2vb
    @RahulGupta-sv2vb 3 роки тому +17

    All i just want to say, the way you explain the concepts is pretty damn amazing. Highly appreciated. Keep up the good work.

  • @brianpwnsjustin
    @brianpwnsjustin 4 роки тому +7

    Hey I really appreciate your channel so I am just sending good thoughts.

    • @BeABetterDev
      @BeABetterDev  4 роки тому

      Thank you. I really appreciate the kind words of support.

  • @rohitupadhyay4665
    @rohitupadhyay4665 4 роки тому +6

    Thanks for these great tutorials.. I was able to design and run my first step function work flow to Train and deploy sagemaker model, learning through your content..

    • @BeABetterDev
      @BeABetterDev  4 роки тому

      Great work Rohit! Glad you are enjoying these videos :)

  • @TyeThilah
    @TyeThilah 4 місяці тому

    you kidding me? why all this shit?!?! god damn. It all make not sense!!!! I can describe this as "Let's make software development hard again!". incredible

  • @DodaGarcia
    @DodaGarcia 3 роки тому +6

    This is very interesting! At first glance it seemed like overkill, I thought here "Why get vendor-locked for the sake of a workflow so simple to write in code?" But you make a good point in that functionality that seems simple on the surface often ends up being really complex to implement once you take into account not only the many ways each step can go wrong, but also things like atomic transactions and logging.

    • @kenanekinovic2803
      @kenanekinovic2803 2 роки тому

      There is also code here, but not shown. How would lambdas work if you do not write some code? :)

  • @noeliaroot499
    @noeliaroot499 6 місяців тому

    what is the difference between this and Simple Workflow Service?

  • @TheOntheskies
    @TheOntheskies 3 роки тому +3

    Thank you for the awesome explanation with awesome graphics. Solid!

  • @Cahnisama
    @Cahnisama 10 місяців тому

    I am stuck at this queue, help me step-function!

  • @kenanekinovic2803
    @kenanekinovic2803 2 роки тому +1

    First of all I would like to say that your video is great. I have some questions though. I have analyzed the diagram you used at the end of the video, and word-by-word wrote this in a pseudocode:
    function easy(data) {
    do {
    storeHistory(data)
    } while (error || attemptNo

    • @bransonS
      @bransonS 2 роки тому +2

      Some things you gain are:
      Easily integrate with aws services and have retry and back off logic built in to calls to other services that changes based on which service is called.
      Built in traceability, it’s easy to debug step functions because of the history and logging.
      And you can standardize/abstract state management a level above your services, so that anyone can understand your orchestration without caring about implementation. And that standard is well-documented, popular, and always growing in features.
      Like you said, you can write all of these things yourself, but you have to decide if the cost of using step functions is worth the time(money) you’ll save by using a standard set of features that has been created by someone else (like any library)
      I’m sure I missed other stuff

  • @aryic0153
    @aryic0153 3 роки тому

    what is the issue in this code
    from __future__ import print_function
    import json
    import urllib
    import boto3
    import datatime
    print("Loading function")
    def process_purchase(message,context):
    print("Recieved message from step functions:")
    print(message)
    response={}
    response['TranscationType'] = message['TranscationType']
    response['Timestamp'] = datatime.datatime.now().strftime("%Y-%m-%d %H-%M-%S")
    response['Message'] = 'Hello from lmabda land inside the ProcessPurchase Fuction'
    return response
    getting error in AWS step functions as The cause could not be determined because Lambda did not return an error type. Returned payload: {"errorMessage": "Unable to import module 'lambda_function'"}
    {
    "Comment": "A simple AWS Step Functions state machine that automates purchase and refund.",
    "StartAt": "ProcessTransaction",
    "States": {
    "ProcessTransaction": {
    "Type" : "Choice",
    "Choices": [
    {
    "Variable": "$.TransactionType",
    "StringEquals": "PURCHASE",
    "Next": "ProcessPurchase"
    },
    {
    "Variable": "$.TransactionType",
    "StringEquals": "REFUND",
    "Next": "ProcessRefund"
    }
    ]
    },
    "ProcessRefund": {
    "Type": "Task",
    "Resource": "arn:aws:lambda:us-east-2::function:ProcessRefund",
    "End": true
    },
    "ProcessPurchase": {
    "Type": "Task",
    "Resource": "arn:aws:lambda:us-east-2::function:ProcessPurchase",
    "End": true
    }
    }
    }

  • @SUDHIRCHANDRADAS-q4r
    @SUDHIRCHANDRADAS-q4r Місяць тому

    This is very interesting!

  • @joaosantino717
    @joaosantino717 Рік тому +2

    Great playlist! Thanks for your time, effort and for sharing your knowledges with us!

    • @Codingiisgreat
      @Codingiisgreat 2 місяці тому

      Is step function a lambda function ???

  • @liang-chiwuu4785
    @liang-chiwuu4785 4 роки тому +17

    This is very useful even for AWS employees 😉 Thanks for the great work.

  • @DioXin
    @DioXin 3 місяці тому

    How is this useful?

  • @KleberJS
    @KleberJS 3 роки тому +2

    Thank you so much! You're great!

  • @ambikesandboards
    @ambikesandboards 4 роки тому +1

    Pretty damn brain dead simple, thanks!

  • @arzlanali5591
    @arzlanali5591 Рік тому

    Great content, but on step 3 would it not be another potential option "Step Up"? ie: OTP

  • @mqtt07
    @mqtt07 Рік тому

    Oh no, here is another attempt to replace a general purpose programming language with a tool whose main purpose is to tie your hands and legs to a specific cloud provider

    • @Rickety3263
      @Rickety3263 10 місяців тому

      Not really. That’s like saying the aws api or cli is trying to be a replacement too. It’s not. It’s just an api

  • @raviy10
    @raviy10 2 роки тому +1

    Thank you! It is very detailed and clear (y)

  • @sainadha
    @sainadha 3 роки тому +1

    Thanks for these great tutorials.... easily understandable.

    • @BeABetterDev
      @BeABetterDev  3 роки тому

      You're very welcome Amperayani! Glad you enjoyed.

  • @grilledlettuce5130
    @grilledlettuce5130 Рік тому

    You sound like moistcritikal

  • @ruixue6955
    @ruixue6955 2 роки тому +3

    0:28 why aws Step Functions
    1:13 step functions are *orchestration for an application*
    1:45 native integration with aws services such as Lambda, SNS, sqs, Dynamo etc.
    3:37 example

  • @pradippsm1983
    @pradippsm1983 3 роки тому

    How to catch lambda payload in step function task catch block?

  • @praneeth0820
    @praneeth0820 4 роки тому +1

    WOW !! Now that's the best possible way of explaining the use case of this service, crystal clear !
    Great work !!!!

    • @BeABetterDev
      @BeABetterDev  4 роки тому +1

      Thanks so much Praneeth! Glad you enjoyed.
      Daniel

  • @thinker5270
    @thinker5270 Рік тому

    Thanks a lot for the wonderful video. Got to learn a lot.

  • @TheBjjninja
    @TheBjjninja 3 роки тому +5

    It would be super helpful to see step function being used in the context of multiple ETL jobs and also Sagemaker to generate predictions.

  • @MagosVeridian
    @MagosVeridian Рік тому

    Studying for the SysOps exam, this really helped me understand step functions. Thanks!

  • @akshatagupta1041
    @akshatagupta1041 2 роки тому +1

    Amazing Explanation

  • @keithsato6993
    @keithsato6993 9 місяців тому +1

    Thanks!

    • @BeABetterDev
      @BeABetterDev  9 місяців тому

      Thank you so much for your generosity!

  • @NomadAndy
    @NomadAndy 4 роки тому

    I just had one question as a person who just watched this video for fun.... is the "Pin" like your personal pin on the card or is that a special pin the card has through say Visa or Mastercard or one of those things. I am just curious because the way you described a failure.

    • @BeABetterDev
      @BeABetterDev  3 роки тому +1

      Hey Andrew, I was referring to the Authorization pin we use at a credit card terminal. If a transaction comes in, we need to verify the PIN to make sure the user is the actual owner of the card. Hope this cleared things up.

    • @NomadAndy
      @NomadAndy 3 роки тому

      @@BeABetterDev ohhhh amazing! Thank you for answering my question. I loved the video and it was very interesting.

  • @migueleg6570
    @migueleg6570 2 роки тому

    Great video thank you!

  • @abhi20aug
    @abhi20aug 3 роки тому +1

    Very Helpful

  • @nathanbenton2051
    @nathanbenton2051 4 роки тому

    Great vid! Do you have anything Udemy or something like that?

    • @BeABetterDev
      @BeABetterDev  3 роки тому +3

      Thanks Nathan! I don't have any courses yet available but I am considering starting one on Udemy. I am actually working on an AWS book right now. You can subscribe to my newsletter at the following URL to get informed when it is released. Thanks for watching!
      mailinglist.beabetterdev.com/

  • @jriverox
    @jriverox 4 роки тому +1

    Excelente introduction to step functions

  • @joyebot7371
    @joyebot7371 Рік тому

    thank you

  • @chandra4996
    @chandra4996 4 роки тому +1

    very useful video

  • @nitinjaiman
    @nitinjaiman 3 роки тому

    Crisp.

  • @wyntertsai6848
    @wyntertsai6848 4 роки тому +1

    Very very good! Keep going!

  • @jesseallaway1149
    @jesseallaway1149 3 роки тому

    Thank you!

  • @HambaAllah-xn2zp
    @HambaAllah-xn2zp 4 роки тому

    Thanks for the video.

  • @rammeharsharma6433
    @rammeharsharma6433 4 роки тому

    Please Make a video series of Media Services specially MediaConvert and How to implement DRM Security . Whole process of VOD