atmos aws cloudformation changeset create
Create a changeset for later review and execution. Use
changeset execute to
deploy the reviewed changes.
Configure templates, parameters, and delivery targets for your component.
Usage
atmos aws cloudformation changeset create <component> --stack <stack> [options]
Examples
atmos aws cloudformation changeset create vpc -s plat-ue2-dev
Create changesets for all or affected components in dependency order:
atmos aws cloudformation changeset create --all -s plat-ue2-dev
atmos aws cloudformation changeset create --affected --base origin/main
Arguments
component(required unless selecting multiple components)- CloudFormation component name in the Atmos stack.
Flags
--stack,-s(required for a single component)- Atmos stack. With bulk selection flags, limits the selected components to this stack.
--all(optional)- Process all
aws/cloudformationcomponents. Deployment runs dependencies first; deletion runs consumers first. --affected(optional)- Process affected
aws/cloudformationcomponents and their dependencies. Compares the working tree against a base: see--baseand the Git flags below. --include-dependents(optional)- With
--affected, include dependentaws/cloudformationcomponents. --base(optional)- Git base ref or SHA to compare against for affected detection:
--base=origin/main. A value that looks like a commit SHA is treated as--sha, anything else as--ref. Used with--affected. --tags(optional)- Filter by tags (comma-separated, matches any):
--tags=production,tier-1. Composes with--all/--affectedto narrow the selected set further; cannot be combined with a single component argument. --labels(optional)- Filter by labels (repeatable and/or comma-separated
key=valueorkey:valuepairs, matches all):--labels=cost-center=platform,compliance=sox. Composes with--all/--affected/--tags; cannot be combined with a single component argument. --ci(optional)- Enable CI integration for supported operations when
ci.enabledis configured. Summary and output-variable publishing use their respective CI settings. Also enabled byCIandATMOS_CI. --ref(optional)- Git ref to compare against for affected detection. Used with
--affected. --sha(optional)- Git SHA to compare against for affected detection. Used with
--affected. --repo-path(optional)- Path to an already cloned target repository to use as the affected baseline. Used with
--affected. --clone-target-ref(optional)- Clone the target ref instead of checking it out in the current repository for affected detection. Used with
--affected. --ssh-key(optional)- Path to the SSH private key used to clone the target ref for affected detection. Used with
--clone-target-ref. --ssh-key-password(optional)- Password for the SSH private key used to clone the target ref for affected detection. Used with
--clone-target-ref. --skip-hooks(optional)- Skip lifecycle hooks for this invocation.
--skip-hookswith no value skips every hook;--skip-hooks=name1,name2skips only the named hooks. Equivalent to theATMOS_SKIP_HOOKSenvironment variable.
Behavior
Unlike a named changeset, the temporary preview created by
diff or plan
is deleted after rendering, along with any preview-created stack placeholder still
in REVIEW_IN_PROGRESS. Cleanup failures are returned as errors.
- A changeset that would change nothing is not kept. CloudFormation reports it as a
FAILEDchangeset ("didn't contain changes"), so Atmos deletes it and printsNo changes; changeset not kept. - A changeset that fails to compute is deleted, together with the empty
REVIEW_IN_PROGRESSstack it registered when Atmos created that stack for a never-deployed component. - A successful changeset is kept, and so is the
REVIEW_IN_PROGRESSstack of a never-deployed component: that is the reusable artifact you asked for, andchangeset executeneeds it. - A stack in
ROLLBACK_COMPLETEcannot be updated, sochangeset createfails with a hint todeletethe stack first.
Output
On success, the summary includes the changeset's ID and name, whether it was a
no-op (no changes to apply), and the predicted changes — the same diff summary
diff renders. Execute the named
changeset later with
changeset execute.
This command fires the before.aws/cloudformation.changeset-create and
after.aws/cloudformation.changeset-create lifecycle hooks.
These events are separate from apply, so a hook listed only for
before.aws/cloudformation.apply does not run here.
To run an existing asset packaging hook before the changeset is created, add the
event to the hook's events list:
hooks:
package-lambda:
events:
- before.aws/cloudformation.apply
- before.aws/cloudformation.changeset-create