@@ -17,20 +17,22 @@ flowchart LR
1717 Browser -->|POST /orders| APIGW[API Gateway]
1818 APIGW --> OH[Lambda\norder-handler]
1919 OH -->|put_item| DDB[(DynamoDB\norders)]
20+ OH -->|scan| PDDB[(DynamoDB\nproducts)]
2021 OH -->|send_message| SQS[SQS Queue]
2122 SQS -->|on failure ×3| DLQ[SQS DLQ]
2223 SQS --> OP[Lambda\norder-processor]
2324 OP -->|start_execution| SFN[Step Functions]
24- SFN --> V[Validate]
25- SFN --> P[Payment]
26- SFN --> F[Fulfill ]
25+ SFN --> V[Validate\nLambda ]
26+ SFN --> P[Payment\nLambda ]
27+ SFN -->|runTask| ECS[ECS Fargate\nfulfillment ]
2728 V -->|update status| DDB
2829 P -->|update status| DDB
29- F -->|update status| DDB
30- F -->|put_object| S3[(S3\nReceipts)]
30+ ECS -->|update status| DDB
31+ ECS -->|put_object| S3[(S3\nReceipts)]
3132
3233 style DLQ fill:#fde8e8,stroke:#e8412a,color:#c0392b
3334 style SFN fill:#e0d7ff,stroke:#4a1a8a,color:#4a1a8a
35+ style ECS fill:#d7f0e0,stroke:#1a7a40,color:#1a7a40
3436```
3537
3638The UI is served from S3 and shows live order status, pipeline progress, and step-level timestamps. Everything runs ** locally** via LocalStack — no AWS account needed.
@@ -44,7 +46,7 @@ The UI is served from S3 and shows live order status, pipeline progress, and ste
4446| [ 00] ( ./00-setup/ ) | Setup | Install tools, start LocalStack, verify | 15m |
4547| [ 01] ( ./01-serverless-app/ ) | Serverless App | Deploy with Terraform, explore the UI | 45m |
4648| [ 02] ( ./02-e2e-testing/ ) | E2E Testing | pytest integration tests against LocalStack | 30m |
47- | [ 03] ( ./03-vscode-debugging / ) | Lambda Debugging | VS Code AWS Toolkit breakpoints | 30m |
49+ | [ 03] ( ./03-iam-enforcement / ) | IAM Enforcement | Permissive vs. enforced mode, least-privilege iteration | 30m |
4850| [ 04] ( ./04-chaos-engineering/ ) | Chaos Engineering | DDB fault injection, DLQ, retries | 30m |
4951| [ 05] ( ./05-app-inspector/ ) | App Inspector | Trace requests, visualize service topology | 20m |
5052| [ 06] ( ./06-ai-integration/ ) | AI Integration * (optional)* | LocalStack MCP + Claude Code skills | 10m |
@@ -93,7 +95,7 @@ localstack-workshop/
9395│ ├── terraform/ # infrastructure as code
9496│ └── website/ # S3-hosted UI (HTML/JS, no build step)
9597├── 02-e2e-testing/ # pytest test suite
96- ├── 03-vscode-debugging / # VS Code launch configs + instructions
98+ ├── 03-iam-enforcement / # IAM enforcement demo & fix policy
9799├── 04-chaos-engineering/ # fault injection scripts & DLQ replay
98100├── 05-app-inspector/ # App Inspector walkthrough
99101├── 06-ai-integration/ # MCP server + LocalStack skills demo
@@ -115,5 +117,8 @@ make test # Run E2E integration tests
115117make inject-fault # Inject DynamoDB throttling fault (chaos demo)
116118make remove-fault # Remove all active fault injections
117119make replay-dlq # Replay messages from the DLQ
120+ make iam-enforce # Enable IAM policy enforcement
121+ make iam-fix # Grant missing dynamodb:PutItem to the Lambda role
122+ make iam-off # Disable IAM enforcement (permissive mode)
118123make logs # Tail LocalStack logs
119124```
0 commit comments