AWS SAM Bootstrap
Overview
Generates SAM project artifacts for greenfield and migration scenarios. Creates the minimum required files (template.yaml, samconfig.toml, events/), validates with sam build, and configures sam deploy workflows following AWS SAM conventions.
When to Use
- User needs to start a new AWS SAM project (
sam init,sam deploy) - User wants to migrate existing Lambda functions or CloudFormation resources to SAM templates
- User asks about SAM CLI commands (
sam init,sam build,sam local invoke,sam deploy) - User needs to create or update
template.yamlorsamconfig.tomlfor serverless deployments - User wants to configure local testing with
sam local invokefor Lambda functions
Instructions
1) Classify Scenario
- New project: no Lambda structure exists. Run
sam initto scaffold. - Existing project migration: Lambda/CloudFormation resources exist. Create
template.yamlmanually.
2) Select Runtime and Package Type
Use current non-deprecated runtimes. Package type: Zip (default) or Image (container/native deps).
3) Bootstrap New Projects
sam init
sam build
sam local invoke <LogicalFunctionId> -e events/event.json
sam deploy --guided
4) Bootstrap Existing Projects
- Inspect current Lambda handlers, runtime, and dependency layout
- Create
template.yamlwithTransform: AWS::Serverless-2016-10-31 - Map existing resources to
AWS::Serverless::Functionand related SAM resources - Create
samconfig.tomlwith deploy defaults and environment overrides - Add
events/event.jsonpayload samples for local invocation - Validate with
sam validateandsam buildbefore deploy
5) Required Artifacts
.
├── template.yaml
├── samconfig.toml
└── events/
└── event.json
See reference templates: examples.md, migration-checklist.md
6) Validation Checklist
sam validatesucceedssam buildsucceedstemplate.yamlhas correct logical IDs and handlerssamconfig.tomlcontains deploy parameters for target environments
Examples
New SAM Project
sam init # Interactive scaffold
sam build
sam local invoke HelloFunction -e events/event.json
sam deploy --guided
Migrate Existing Lambda
- Detect handler/runtime → create
template.yamlwith SAM transform - Add
samconfig.tomlwithstack_name,capabilities,resolve_s3 - Add
events/event.json→ validate withsam build
Full templates in references/examples.md.
Best Practices
- One deployable function first, then expand; keep migration-first PRs minimal
- Keep
samconfig.tomlcommitted for deterministic deployments - Use environment-specific sections (
[default],[prod]) instead of CLI flags - Map existing handler paths to SAM conventions during migration
Constraints and Warnings
- SAM CLI must be installed locally for command execution
CAPABILITY_IAMis required when IAM resources are created- Container image packaging requires Docker availability
- Existing projects may require refactoring handler paths to match SAM conventions
sam deploy --guidedwrites local configuration; review before committing