Skip to content

Commit 1c3a3cc

Browse files
committed
Merge feature/workshop-improvements into main
2 parents e838b70 + ae5c20b commit 1c3a3cc

2 files changed

Lines changed: 19 additions & 13 deletions

File tree

01-serverless-app/website/index.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -423,18 +423,19 @@ <h2>What is this?</h2>
423423
flowchart LR
424424
Browser -->|POST /orders| APIGW[API Gateway]
425425
APIGW --> OH[Lambda\norder-handler]
426-
OH -->|put_item| DDB[(DynamoDB)]
426+
OH -->|put_item| DDB[(DynamoDB\norders)]
427+
OH -->|scan| PDDB[(DynamoDB\nproducts)]
427428
OH -->|send_message| SQS[SQS Queue]
428429
SQS -->|on failure x3| DLQ[SQS DLQ]
429430
SQS --> OP[Lambda\norder-processor]
430431
OP -->|start_execution| SFN[Step Functions]
431-
SFN --> V[Validate]
432-
SFN --> P[Payment]
433-
SFN --> F[Fulfill]
432+
SFN --> V[Validate\nLambda]
433+
SFN --> P[Payment\nLambda]
434+
SFN -->|runTask| ECS[ECS Fargate\nfulfillment]
434435
V -->|update status| DDB
435436
P -->|update status| DDB
436-
F -->|update status| DDB
437-
F -->|put_object| S3[(S3 Receipts)]
437+
ECS -->|update status| DDB
438+
ECS -->|put_object| S3[(S3 Receipts)]
438439
</div>
439440
</div>
440441

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3638
The 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
115117
make inject-fault # Inject DynamoDB throttling fault (chaos demo)
116118
make remove-fault # Remove all active fault injections
117119
make 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)
118123
make logs # Tail LocalStack logs
119124
```

0 commit comments

Comments
 (0)