首页 > 解决方案 > 通过控制台更新到通过 CLI 使用相同的 json 更新时 AWS Cloudformation 堆栈的差异

问题描述

我有一个现有的 AWS 堆栈,可以使用 Cloud Formation 通过控制台手动更新,没有任何问题。

通过 GUI,我可以上传堆栈 json 文件并进行部署,仅更新对模板所做的更改或返回正确的输出(如果不包含任何更改)。还有许多默认值已经作为参数更新并在 json.xml 中定义。

错误 \

我的问题是当我使用下面的示例代码通过 CLI 运行相同的更新时

aws cloudformation update-stack  --stack-name $stackname  --template-url https://s3-myregion.amazonaws.com/mybucket --parameters ParameterKey=MasterUsername,UsePreviousValue=true ParameterKey=MasterUserPassword,UsePreviousValue=true --capabilities CAPABILITY_NAMED_IAM

这开始更新堆栈,但开始修改 RDS 数据库,创建已创建的新 EC2 实例,重新创建已存在的新 vpn 和客户网关。当通过 GUI 更新时,这些值在 UI 中不会默认作为 EC2 实例 ami 以外的参数。

我希望通过构建类型服务器将通过 gui 的手动更新移动到自动化过程。

我是否需要在命令中使用如下

--use-previous-template

还是我需要为所有资源/参数设置 UsePreviousValue=true

仅供参考:我已经在只有一个 EC2 实例和安全组的较小堆栈上进行了测试,并且无需重新创建资源即可正常更新。

标签: amazon-cloudformationaws-cli

解决方案


第二个“$true”中是否缺少“$”?


推荐阅读