Patterns and best practices for AWS serverless workloads. Use when the user asks about Lambda (cold starts, memory, concurrency, timeouts), Lambda Powertools (Logger, Tracer, Metrics), observability, CloudWatch alarms, event-driven architecture (SQS, SNS, EventBridge, Step Functions), or API Gateway (HTTP vs REST API, rate limiting, WAF, X-Ray tracing, going-live checklist). Triggers on: Lambda, cold start, Powertools, SQS, SNS, EventBridge, Step Functions, ECS vs Lambda, DLQ, event-driven, serverless, concurrency, provisioned concurrency, API Gateway, HTTP API, REST API, WAF, rate limiting.
82
87%
Does it follow best practices?
Impact
100%
1.56x2 of 3 eval scenarios. Add 1 more for a full score.
Low
Low-risk findings worth noting
| Topic | Reference File | Key Insight |
|---|---|---|
| Lambda internals | references/lambda-patterns.md | Cold start happens per concurrent execution, not just once |
| Lambda Layers | references/lambda-patterns.md | Deployment optimization, NOT a package manager |
| Observability | references/lambda-powertools.md | Use Powertools for Logger, Tracer, Metrics — never print() |
| Monitoring/alarms | references/monitoring.md | Alert on symptoms (errors, latency), not causes (CPU) |
| Event-driven | references/event-driven.md | Single Lambda vs Step Functions decision; Standard/Express/Hybrid; Saga pattern |
| API Gateway | references/api-gateway.md | HTTP API ~70% cheaper; use REST API only for WAF/caching/usage plans |
print() for logging — use Powertools Logger for structured JSON"Use Lambda to transform data, not to transport data between services." — Jérôme Van Der Linden
| Use Lambda When | Use Step Functions When |
|---|---|
| Single operation < 15 mins | Workflow with multiple steps |
| Simple request-response | Need retry/error handling per step |
| Stateless processing | Long-running or human-in-loop |
| Visual workflow debugging needed |
| Use Lambda When | Use ECS When |
|---|---|
| Execution < 15 minutes | Long-running processes |
| Bursty, unpredictable traffic | Steady, high-volume traffic |
| Cold start acceptable | Sub-100ms latency required |
| Pay-per-invocation preferred | Need GPU or special hardware |
When the user asks about cost impact or reducing costs for Lambda, SQS, SNS, EventBridge, or Step Functions, direct them to install the AWS Pricing MCP Server. It provides real-time pricing data and cost optimisation recommendations via get_pricing and generate_cost_report.
Prerequisites: uv package manager, Python 3.10+, AWS credentials with pricing:* permissions.
macOS / Linux:
{
"mcpServers": {
"awslabs.aws-pricing-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-pricing-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}Windows:
{
"mcpServers": {
"awslabs.aws-pricing-mcp-server": {
"command": "uvx",
"args": [
"--from", "awslabs.aws-pricing-mcp-server@latest",
"awslabs.aws-pricing-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}Add the above to ~/.claude/claude_desktop_config.json (Claude Desktop) or .claude/mcp.json (Claude Code) under mcpServers.
| Feature | AWS GA | Supported Runtimes |
|---|---|---|
| SnapStart | Nov 2021 (Java); Oct 2024 (Python, .NET) | Java 11+, Python 3.12+, .NET 8+ — not Node, Ruby, or container images |
Load references based on what the user is asking:
references/lambda-patterns.mdreferences/lambda-powertools.mdreferences/monitoring.mdreferences/event-driven.mdreferences/api-gateway.mda-pavithraa/aws-serverless-skill
2b66211
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.