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 करू शकते.
2. मुख्य शब्द
| Word | अर्थ | रस्त्याचं चित्र |
|---|---|---|
| State machine | Deploy केलेलं flowchart | Kitchen ची पूर्ण recipe |
| ASL | States ची JSON भाषा | JSON recipe |
| Task | काम (बहुतेक Lambda ARN) | एक cooking step |
| Retry / Catch | पुन्हा प्रयत्न किंवा error path | Roti जाळली: पुन्हा / manager |
| Map / Parallel | List वर fan-out / एकत्र branches | एकत्र अनेक parcels |
| Standard / Express | लांब durable vs short high-volume | Registered post vs bulk SMS |
3. Standard vs Express
हे का लागतं?
चुकीचा mode = पैसे वाया किंवा bank audit trail हरवतो.
हे काय आहे?
| Need | Pick | का |
|---|---|---|
| Loan/KYC/human/days | Standard | Exactly-once, 1 year, पूर्ण history |
| IoT / short pipes | Express | At-least-once, 5 min, मोठ्या volume ला स्वस्त |
| Support replay | Standard | History = 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)
- कागदावर 3–5 boxes happy path.
- कोणता Lambda / wait / choice ते गोल करा.
- Flaky call वर एक Retry.
- Catch → DynamoDB failure + SNS.
- 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)
- Step Functions → Create → Write workflow in code.
- 2-Task ASL — दोन Lambdas किंवा sample.
- {"orderId":"lab-1"} ने start.
- Graph view — green success.
- Execution ARN notes मध्ये.
Cleanup (billing थांबवा)
- Lab असेल तर state machine delete.
- Lab Lambdas delete.
7. सामान्य errors आणि fixes
प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.
| Error / लक्षण | Fix |
|---|---|
| अवैध ASL | Workflow Studio किंवा validate-state-machine-definition. |
| Lambda authorize नाही | Execution role ला lambda:InvokeFunction. |
| Task timeout | TimeoutSeconds / Lambda timeout / cold start. |
| अनंत Retry | MaxAttempts + Catch. |
| Express + audit हवं | Standard वर जा. |
| Payload मोठा | S3 key पास करा. |
| Map थंडर | MaxConcurrency. |
| चुकीचा region ARN | Same region ARNs. |
| Catch चालत नाही | States.ALL शिकत असताना. |
| Bill धक्का | Wait loops कमी करा. |
8. Troubleshooting checklist
- Region तपासा.
- Execution role + trust.
- Lambda invoke allow.
- Failed state → cause JSON.
- Lambda एकटी test.
- 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 से बेहतर है।
घरी करून बघा
- Swiggy path 4 boxes + एक Catch.
- Sample project → Start execution.
- नोकरी/college चे 3 workflows लिहा.
थोडक्यात सांगायचं तर
- Step Functions = AWS workflows ची state machine.
- ASL = Task/Choice/Wait/Map/Parallel/Retry/Catch.
- Standard = durable; Express = short volume.
- Failure path + lab cleanup.
उजळणी, मुलाखत आणि तुलना cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.











अजून cards: Ravi Sir's Cards.
सराव Tasks
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 दाखवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं State machine describe करा
का: Definition व role ARN तपासा.
काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order describe करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं State machine delete करा
का: नको असलेल्या machines बिल थांबवा.
काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-lab delete.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Executions दाखवा
का: चालू/failed runs.
काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order च्या executions.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Standard कमाल कालावधी (वर्षे)
का: Durable limit.
काय करायचं: Standard workflow जास्तीत जास्त किती वर्षे?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Express कमाल मिनिटे
का: Express लहान.
काय करायचं: Express जास्तीत जास्त किती मिनिटे?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Execution सुरू करा
का: Input सह workflow चालवा.
काय करायचं: arn:aws:states:ca-central-1:102932412000:stateMachine:mapleleafbooks-order वर run-1, input file://input.json.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Execution history घ्या
का: कोणता state fail ते पाहा.
काय करायचं: execution arn:aws:states:ca-central-1:102932412000:execution:mapleleafbooks-order:run-1 ची history.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Execution थांबवा
का: अडकलेली run रद्द.
काय करायचं: arn:aws:states:ca-central-1:102932412000:execution:mapleleafbooks-order:run-1 stop.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Definition validate करा
का: ASL errors लवकर.
काय करायचं: asl.json मधली definition validate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Step Functions trust policy
का: Role कोण घेऊ शकतो.
काय करायचं: states.amazonaws.com ला assume करू देणारी trust policy.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम SFN ला एक Lambda invoke
का: Task साठी least privilege.
काय करायचं: फक्त arn:aws:lambda:ca-central-1:102932412000:function:mapleleafbooks-charge वर lambda:InvokeFunction.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम Payload मर्यादा KB
का: S3 कधी.
काय करायचं: State payload सुमारे किती KB?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड State machine बनवा
का: File मधून ASL deploy.
काय करायचं: mapleleafbooks-order STANDARD, role arn:aws:iam::102932412000:role/mapleleafbooks-sfn, definition file://asl.json.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड ASL: Validate मग Charge
का: StartAt path स्पष्ट हवा.
काय करायचं: ASL: StartAt Validate; Validate→Charge; Charge End true.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
अवघड Retry सह ASL
का: Flaky payment साठी Retry.
काय करायचं: ASL: StartAt Pay; Pay Task Retry MaxAttempts 3 (States.TaskFailed), End true.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.