- Navigation GuideYou are on a Command (operation) page with structural examples. Use the navigation breadcrumb if you would like to return to the Client landing page.
CreateChangeSetCommand
Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that CloudFormation will create. If you create a change set for an existing stack, CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack.
To create a change set for a stack that doesn't exist, for the ChangeSetType
parameter, specify CREATE
. To create a change set for an existing stack, specify UPDATE
for the ChangeSetType
parameter. To create a change set for an import operation, specify IMPORT
for the ChangeSetType
parameter. After the CreateChangeSet
call successfully completes, CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action.
When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. CloudFormation doesn't make changes until you execute the change set.
To create a change set for the entire stack hierarchy, set IncludeNestedStacks
to True
.
Example Syntax
Use a bare-bones client and the command you need to make an API call.
import { CloudFormationClient, CreateChangeSetCommand } from "@aws-sdk/client-cloudformation"; // ES Modules import
// const { CloudFormationClient, CreateChangeSetCommand } = require("@aws-sdk/client-cloudformation"); // CommonJS import
const client = new CloudFormationClient(config);
const input = { // CreateChangeSetInput
StackName: "STRING_VALUE", // required
TemplateBody: "STRING_VALUE",
TemplateURL: "STRING_VALUE",
UsePreviousTemplate: true || false,
Parameters: [ // Parameters
{ // Parameter
ParameterKey: "STRING_VALUE",
ParameterValue: "STRING_VALUE",
UsePreviousValue: true || false,
ResolvedValue: "STRING_VALUE",
},
],
Capabilities: [ // Capabilities
"CAPABILITY_IAM" || "CAPABILITY_NAMED_IAM" || "CAPABILITY_AUTO_EXPAND",
],
ResourceTypes: [ // ResourceTypes
"STRING_VALUE",
],
RoleARN: "STRING_VALUE",
RollbackConfiguration: { // RollbackConfiguration
RollbackTriggers: [ // RollbackTriggers
{ // RollbackTrigger
Arn: "STRING_VALUE", // required
Type: "STRING_VALUE", // required
},
],
MonitoringTimeInMinutes: Number("int"),
},
NotificationARNs: [ // NotificationARNs
"STRING_VALUE",
],
Tags: [ // Tags
{ // Tag
Key: "STRING_VALUE", // required
Value: "STRING_VALUE", // required
},
],
ChangeSetName: "STRING_VALUE", // required
ClientToken: "STRING_VALUE",
Description: "STRING_VALUE",
ChangeSetType: "CREATE" || "UPDATE" || "IMPORT",
ResourcesToImport: [ // ResourcesToImport
{ // ResourceToImport
ResourceType: "STRING_VALUE", // required
LogicalResourceId: "STRING_VALUE", // required
ResourceIdentifier: { // ResourceIdentifierProperties // required
"<keys>": "STRING_VALUE",
},
},
],
IncludeNestedStacks: true || false,
OnStackFailure: "DO_NOTHING" || "ROLLBACK" || "DELETE",
ImportExistingResources: true || false,
};
const command = new CreateChangeSetCommand(input);
const response = await client.send(command);
// { // CreateChangeSetOutput
// Id: "STRING_VALUE",
// StackId: "STRING_VALUE",
// };
CreateChangeSetCommand Input
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
ChangeSetName Required | string | undefined | The name of the change set. The name must be unique among all change sets that are associated with the specified stack. A change set name can contain only alphanumeric, case sensitive characters, and hyphens. It must start with an alphabetical character and can't exceed 128 characters. |
StackName Required | string | undefined | The name or the unique ID of the stack for which you are creating a change set. CloudFormation generates the change set by comparing this stack's information with the information that you submit, such as a modified template or different parameter input values. |
Capabilities | Capability[] | undefined | In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.
Only one of the |
ChangeSetType | ChangeSetType | undefined | The type of change set operation. To create a change set for a new stack, specify If you create a change set for a new stack, CloudFormation creates a stack with a unique stack ID, but no template or resources. The stack will be in the By default, CloudFormation specifies |
ClientToken | string | undefined | A unique identifier for this |
Description | string | undefined | A description to help you identify this change set. |
ImportExistingResources | boolean | undefined | Indicates if the change set imports resources that already exist. This parameter can only import resources that have custom names in templates. For more information, see name type in the CloudFormation User Guide. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead. For more information, see Import Amazon Web Services resources into a CloudFormation stack with a resource import in the CloudFormation User Guide. |
IncludeNestedStacks | boolean | undefined | Creates a change set for the all nested stacks specified in the template. The default behavior of this action is set to |
NotificationARNs | string[] | undefined | The Amazon Resource Names (ARNs) of Amazon SNS topics that CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list. |
OnStackFailure | OnStackFailure | undefined | Determines what action will be taken if stack creation fails. If this parameter is specified, the
For nested stacks, when the |
Parameters | Parameter[] | undefined | A list of |
ResourceTypes | string[] | undefined | The template resource types that you have permissions to work with if you execute this change set, such as If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By default, CloudFormation grants permissions to all resource types. IAM uses this parameter for condition keys in IAM policies for CloudFormation. For more information, see Control access with Identity and Access Management in the CloudFormation User Guide. Only one of the |
ResourcesToImport | ResourceToImport[] | undefined | The resources to import into your stack. |
RoleARN | string | undefined | The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes when executing the change set. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least permission. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that is generated from your user credentials. |
RollbackConfiguration | RollbackConfiguration | undefined | The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. |
Tags | Tag[] | undefined | Key-value pairs to associate with this stack. CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 50 tags. |
TemplateBody | string | undefined | A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates the change set by comparing this template with the template of the stack that you specified. Conditional: You must specify only |
TemplateURL | string | undefined | The URL of the file that contains the revised template. The URL must point to a template (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation generates the change set by comparing this template with the stack that you specified. The location for an Amazon S3 bucket must start with Conditional: You must specify only |
UsePreviousTemplate | boolean | undefined | Whether to reuse the template that's associated with the stack to create the change set. |
CreateChangeSetCommand Output
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
$metadata Required | ResponseMetadata | Metadata pertaining to this request. |
Id | string | undefined | The Amazon Resource Name (ARN) of the change set. |
StackId | string | undefined | The unique ID of the stack. |
Throws
Name | Fault | Details |
---|
Name | Fault | Details |
---|---|---|
AlreadyExistsException | client | The resource with the name requested already exists. |
InsufficientCapabilitiesException | client | The template contains resources with capabilities that weren't specified in the Capabilities parameter. |
LimitExceededException | client | The quota for the resource has already been reached. For information about resource and stack limitations, see CloudFormation quotas in the CloudFormation User Guide. |
CloudFormationServiceException | Base exception class for all service exceptions from CloudFormation service. |