Ravindra BagaleCourses & study guides English Track your progress

AWS Step Functions म्हणजे काय? Lambda Workflows सोप्या भाषेत

बँक loan: KYC → credit → offer → SMS. प्रत्येक check = Lambda असेल तर आपण कुठे आहोत हे आठवणारा पाहिजे. ते AWS Step Functions — workflow चा traffic policeman.

या chapter मध्ये तुम्ही काय शिकाल

  • Long workflows ला state machine का
  • ASL, Task, Retry, Catch, Map, Parallel
  • Standard vs Express
  • Industries जे वापरतात
  • Lab, errors, FAQ, interview

1. आधी रोजचं उदाहरण

हे का लागतं?

Swiggy order: cart → stock → charge → rider. Charge fail झाले तर stock release. एका Lambda मध्ये हे = spaghetti. State machine = board वरचा मार्ग.

हे काय आहे?

AWS Step Functions ASL JSON मधली state machine चालवते. प्रत्येक state Lambda/DynamoDB/ECS/दुसरी workflow, wait, choose, retry किंवा catch करू शकते.

Happy path (order)StartAt ValidateTask ChargeTask NotifyEnd success
Retry व Catch या happy path शेजारी बसतात.

2. मुख्य शब्द

Wordअर्थरस्त्याचं चित्र
State machineDeploy केलेलं flowchartKitchen ची पूर्ण recipe
ASLStates ची JSON भाषाJSON recipe
Taskकाम (बहुतेक Lambda ARN)एक cooking step
Retry / Catchपुन्हा प्रयत्न किंवा error pathRoti जाळली: पुन्हा / manager
Map / ParallelList वर fan-out / एकत्र branchesएकत्र अनेक parcels
Standard / Expressलांब durable vs short high-volumeRegistered post vs bulk SMS

3. Standard vs Express

हे का लागतं?

चुकीचा mode = पैसे वाया किंवा bank audit trail हरवतो.

हे काय आहे?

NeedPickका
Loan/KYC/human/daysStandardExactly-once, 1 year, पूर्ण history
IoT / short pipesExpressAt-least-once, 5 min, मोठ्या volume ला स्वस्त
Support replayStandardHistory = support ticket

Ravindra Bagale's Tip

Labs Standard वर. Volume metrics दिसल्यावरच Express.

4. Industries

  • Fintech: KYC → bureau → offer → e-sign.
  • Healthcare: intake → insurance → appointment.
  • Ecommerce: order → fraud → warehouse → label.
  • Media: upload → transcode Map → CDN.
  • SaaS: tenant → seed DB → email.

5. पहिली machine कशी काढायची

कसं करायचं (step by step)

  1. कागदावर 3–5 boxes happy path.
  2. कोणता Lambda / wait / choice ते गोल करा.
  3. Flaky call वर एक Retry.
  4. Catch → DynamoDB failure + SNS.
  5. ASL JSON; छोट्या input ने start.
{
  "Comment": "Tiny charge flow",
  "StartAt": "Validate",
  "States": {
    "Validate": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-south-1:123456789012:function:validate",
      "Next": "Charge"
    },
    "Charge": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-south-1:123456789012:function:charge",
      "Retry": [{"ErrorEquals": ["States.TaskFailed"], "IntervalSeconds": 2, "MaxAttempts": 3}],
      "Catch": [{"ErrorEquals": ["States.ALL"], "Next": "FailNotify"}],
      "End": true
    },
    "FailNotify": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-south-1:123456789012:function:fail-notify",
      "End": true
    }
  }
}

6. Mini lab: console state machine

Org block नसेल तर ap-south-1 (Mumbai). आधी budget alert.

कसं करायचं (step by step)

  1. Step Functions → Create → Write workflow in code.
  2. 2-Task ASL — दोन Lambdas किंवा sample.
  3. {"orderId":"lab-1"} ने start.
  4. Graph view — green success.
  5. Execution ARN notes मध्ये.

Cleanup (billing थांबवा)

  1. Lab असेल तर state machine delete.
  2. Lab Lambdas delete.

7. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
अवैध ASLWorkflow Studio किंवा validate-state-machine-definition.
Lambda authorize नाहीExecution role ला lambda:InvokeFunction.
Task timeoutTimeoutSeconds / Lambda timeout / cold start.
अनंत RetryMaxAttempts + Catch.
Express + audit हवंStandard वर जा.
Payload मोठाS3 key पास करा.
Map थंडरMaxConcurrency.
चुकीचा region ARNSame region ARNs.
Catch चालत नाहीStates.ALL शिकत असताना.
Bill धक्काWait loops कमी करा.

8. Troubleshooting checklist

  1. Region तपासा.
  2. Execution role + trust.
  3. Lambda invoke allow.
  4. Failed state → cause JSON.
  5. Lambda एकटी test.
  6. CloudWatch Logs.

9. FAQ

प्र. फक्त Lambda?

नाही — अनेक AWS APIs direct.

प्र. SQS vs?

SQS = queue; Step Functions = orchestrator.

प्र. 30 दिवस wait?

Standard Wait → 1 year पर्यंत.

प्र. Express सर्व states?

बहुतेक; history/exactly-once वेगळे.

प्र. Unit test?

Lambda contract tests + छोटी integration.

10. Interview Q&A

प्र. State machine काय?

ASL flowchart — retries/branches सह.

प्र. Standard vs Express?

Standard = long/history; Express = short/volume.

प्र. Catch+Retry का?

Retry = blip; Catch = failure path.

प्र. Map?

Array वर fan-out.

प्र. मोठ्या files?

S3 key — file नको.

प्र. Idempotency?

Idempotent Lambdas + business key.

11. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

Draw the flowchart before you open the console. Cheap paper beats expensive failed executions.

Ravindra Bagale's Tip (MR)

आधी कागदावर flowchart. स्वस्त कागद > महाग failed executions.

Tip (HI)

पहले कागज़ पर flowchart बनाओ — सस्ता कागज़ महंगे failed execution से बेहतर है।

घरी करून बघा

  1. Swiggy path 4 boxes + एक Catch.
  2. Sample project → Start execution.
  3. नोकरी/college चे 3 workflows लिहा.

थोडक्यात सांगायचं तर

  1. Step Functions = AWS workflows ची state machine.
  2. ASL = Task/Choice/Wait/Map/Parallel/Retry/Catch.
  3. Standard = durable; Express = short volume.
  4. Failure path + lab cleanup.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: AWS Step Functions म्हणजे काय?. Loan app ला अनेक Lambdas क्रमाने. स्वतः chain करणे कठीण. Step Functions = managed workflow — states Lambda call/wait/choose/retry करतात. State machine → IAM → StartExecution. Graph green/red; एक step retry.
उजळणी card: AWS Step Functions म्हणजे काय? · PNG download करा · Card page उघडा
उजळणी card: Task, Choice, Wait, Parallel. चुकीचा state = hang किंवा rule skip. Task=काम; Choice=if; Wait=थांबा; Parallel=एकत्र. Happy path = Task+Choice; Wait गरजेनुसार. status APPROVED → disburse.
उजळणी card: Task, Choice, Wait, Parallel · PNG download करा · Card page उघडा
उजळणी card: Retry आणि Catch. पहिले timeout = पूर्ण order fail नको. Retry = backoff पुन्हा; Catch = cleanup/alert. Retry common errors; Catch → notify. History: 3 retries → Catch.
उजळणी card: Retry आणि Catch · PNG download करा · Card page उघडा
उजळणी card: Standard vs Express. IoT = volume; loan = long wait + history. Standard = long/history; Express = high-rate/cheap. Orders = Standard; high-volume short = Express. Webhook wait → Standard.
उजळणी card: Standard vs Express · PNG download करा · Card page उघडा
उजळणी card: State machine साठी IAM. Role ला Lambda/logs नाही = AccessDenied. Role: lambda:InvokeFunction + integrations. Trust states.amazonaws.com; least privilege ARNs. नवीन execution → Lambda Task OK.
उजळणी card: State machine साठी IAM · PNG download करा · Card page उघडा
तुलना: Standard workflow vs Express workflow. Standard workflow: लांब runs, exactly-once, पूर्ण history. Express workflow: High-rate, at-least-once, short, स्वस्त.
तुलना: Standard workflow vs Express workflow · PNG download करा · Card page उघडा
तुलना: Task state vs Map state. Task state: एका resource ला एकदा call. Map state: Array मधल्या प्रत्येक item वर same processor.
तुलना: Task state vs Map state · PNG download करा · Card page उघडा
मुलाखत card: Step Functions vs code orchestration?. Managed state machine + history/retries. Custom orchestrator server नको. Loan + Choice → Step Functions.
मुलाखत card: Step Functions vs code orchestration? · PNG download करा · Card page उघडा
मुलाखत card: Standard की Express?. Standard=long/history; Express=volume. Duration/volume/history. Approval→Standard; clicks→Express.
मुलाखत card: Standard की Express? · PNG download करा · Card page उघडा
मुलाखत card: Tasks idempotent कसे?. Retry = double charge नको. Business keys + conditional writes. orderId key → no double bill.
मुलाखत card: Tasks idempotent कसे? · PNG download करा · Card page उघडा
मुलाखत card: Map कधी वापरायचे?. Array वर same process; concurrency limit. Fan-out → Map; fixed branches → Parallel. 500 invoices, MaxConcurrency 10.
मुलाखत card: Map कधी वापरायचे? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं State machines दाखवा

का: कोणते workflows आहेत ते पाहा.

काय करायचं: ca-central-1 मधली state machines दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं State machine describe करा

का: Definition व role ARN तपासा.

काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order describe करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं State machine delete करा

का: नको असलेल्या machines बिल थांबवा.

काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-lab delete.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Executions दाखवा

का: चालू/failed runs.

काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order च्या executions.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Standard कमाल कालावधी (वर्षे)

का: Durable limit.

काय करायचं: Standard workflow जास्तीत जास्त किती वर्षे?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Express कमाल मिनिटे

का: Express लहान.

काय करायचं: Express जास्तीत जास्त किती मिनिटे?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Execution सुरू करा

का: Input सह workflow चालवा.

काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order वर run-1, input file://input.json.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Execution history घ्या

का: कोणता state fail ते पाहा.

काय करायचं: execution arn:aws:states:ca-central-1:102932412000:execution:mapleleafbooks-order:run-1 ची history.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Execution थांबवा

का: अडकलेली run रद्द.

काय करायचं: arn:aws:states:ca-central-1:102932412000:execution:mapleleafbooks-order:run-1 stop.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Definition validate करा

का: ASL errors लवकर.

काय करायचं: asl.json मधली definition validate करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Step Functions trust policy

का: Role कोण घेऊ शकतो.

काय करायचं: states.amazonaws.com ला assume करू देणारी trust policy.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम SFN ला एक Lambda invoke

का: Task साठी least privilege.

काय करायचं: फक्त arn:aws:lambda:ca-central-1:102932412000:function:mapleleafbooks-charge वर lambda:InvokeFunction.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Payload मर्यादा KB

का: S3 कधी.

काय करायचं: State payload सुमारे किती KB?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड State machine बनवा

का: File मधून ASL deploy.

काय करायचं: mapleleafbooks-order STANDARD, role arn:aws:iam::102932412000:role/mapleleafbooks-sfn, definition file://asl.json.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड ASL: Validate मग Charge

का: StartAt path स्पष्ट हवा.

काय करायचं: ASL: StartAt Validate; Validate→Charge; Charge End true.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

अवघड Retry सह ASL

का: Flaky payment साठी Retry.

काय करायचं: ASL: StartAt Pay; Pay Task Retry MaxAttempts 3 (States.TaskFailed), End true.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.