# samconfig.toml
[default.deploy.parameters]
stack_name = "my-app-dev"
parameter_overrides = "Stage=dev"
[staging.deploy.parameters]
stack_name = "my-app-staging"
parameter_overrides = "Stage=staging"
[production.deploy.parameters]
stack_name = "my-app-prod"
parameter_overrides = "Stage=prod"
confirm_changeset = true
sam deploy # dev (default)
sam deploy --config-env staging # staging
sam deploy --config-env production # prod
# Preview changes before applying
aws cloudformation create-change-set \
--stack-name my-stack \
--template-body file://template.yaml \
--change-set-name my-update
# Review then execute
aws cloudformation execute-change-set \
--change-set-name my-update --stack-name my-stack
new MyStack(app, 'Dev', { env: { account: '111', region: 'us-east-1' } });
new MyStack(app, 'Prod', { env: { account: '222', region: 'us-east-1' } });
cdk diff Dev # Preview changes
cdk deploy Dev # Deploy to dev
Exam Tip: samconfig.toml for multi-env. Change Sets = preview before update. CDK cdk diff = preview changes.