// the find
aws/aws-sam-cli
CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM
The official CLI for AWS Serverless Application Model — build, test locally in Docker, and deploy Lambda/API Gateway/Step Functions stacks. It's the primary tool for SAM-based serverless development on AWS, and it works with CDK apps too via the `--hook-name` flag. If you're doing serverless on AWS and not using it, you're probably writing more CloudFormation by hand than you need to.
Local Lambda emulation via Docker (`sam local invoke`, `sam local start-api`) is genuinely useful — you get real invocation semantics including environment variables, memory limits, and timeout behavior without deploying. `sam sync` (Accelerate) does hot-swapping of Lambda code without a full CloudFormation diff cycle, which cuts iteration time significantly. The project has real test infrastructure: 95% unit coverage claimed, integration tests against actual AWS, and reproducible builds via pinned requirements files. The `designs/` directory documents architectural decisions in plain markdown — unusual for AWS tooling and useful when something behaves unexpectedly.
Local emulation is permanently behind real Lambda: VPC, SnapStart, function URLs with streaming, and newer runtimes consistently lag. The Docker cold-start on every invocation makes `sam local` noticeably slower than just deploying to a sandbox account with `sam sync`. The SAM template format itself is a leaky abstraction — it compiles to CloudFormation, and when something goes wrong in the transform you're debugging raw CFN error messages with no useful context. Dependency on Appveyor for CI alongside GitHub Actions means two separate CI configurations to maintain, and the Appveyor files are at the repo root with no explanation.