将 UpdateStack 与 Amazon SDK 或 CLI 配合使用 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

UpdateStack 与 Amazon SDK 或 CLI 配合使用

以下代码示例演示如何使用 UpdateStack

CLI
Amazon CLI

更新 Amazon CloudFormation 堆栈

以下 update-stack 命令更新了 mystack 堆栈的模板和输入参数:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

以下 update-stack 命令更新了 mystack 堆栈的 SubnetIDs 参数值:如果您没有指定参数值,则将使用模板中指定的默认值:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

以下 update-stack 命令向 mystack 堆栈添加了两个堆栈通知主题:

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的 Amazon 堆栈更新

  • 有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 UpdateStack

PowerShell
适用于 PowerShell 的工具

示例 1:使用指定的模板和自定义参数更新堆栈“MyStack”。“PK1”代表模板中声明的参数名称,“PV1”代表参数值。也可以使用“键”和“值”来指定自定义参数,而不是“ParameterKey”和“ParameterValue”。

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

示例 2:使用指定的模板和自定义参数更新堆栈“MyStack”。“PK1”和“PK2”代表模板中声明的参数名称,“PV1”和“PV2”代表请求的参数值。也可以使用“键”和“值”来指定自定义参数,而不是“ParameterKey”和“ParameterValue”。

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

示例 3:使用指定的模板和自定义参数更新堆栈“MyStack”。“PK1”代表模板中声明的参数名称,“PV2”代表参数值。也可以使用“键”和“值”来指定自定义参数,而不是“ParameterKey”和“ParameterValue”。

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

示例 4:使用从 Amazon S3 获得的指定模板和自定义参数更新堆栈“MyStack”。“PK1”和“PK2”代表模板中声明的参数名称,“PV1”和“PV2”代表请求的参数值。也可以使用“键”和“值”来指定自定义参数,而不是“ParameterKey”和“ParameterValue”。

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

示例 5:使用从 Amazon S3 获得的指定模板和自定义参数更新堆栈“MyStack”(在此例中假设该堆栈包含 IAM 资源)。“PK1”和“PK2”代表模板中声明的参数名称,“PV1”和“PV2”代表请求的参数值。也可以使用“键”和“值”来指定自定义参数,而不是“ParameterKey”和“ParameterValue”。由于堆栈包含 IAM 资源,您需要指定 -Capabilities "CAPABILITY_IAM" 参数,否则更新将失败并出现“InsufficientCapabilities”错误。

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • 有关 API 详细信息,请参阅《Amazon Tools for PowerShell Cmdlet 参考》中的 UpdateStack

有关 Amazon SDK 开发人员指南和代码示例的完整列表,请参阅 将 Amazon CloudFormation 与 Amazon 开发工具包配合使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。