通过控制台更新到通过CLI使用相同json更新时,AWS Cloudformation堆栈的差异

时间:2019-01-16 12:42:03

标签: amazon-cloudformation aws-cli

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

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

错误\

我的问题是,当我使用以下示例代码通过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更新时,这些值不会在用户界面中默认为EC2实例ami以外的参数。

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

我是否需要在命令中使用以下内容

-use-previous-template

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我能够对此进行排序,更改是ami和vpn BGP默认值的默认值。

我可以通过在CLI内创建更改集并更清楚地检查更改来找到它。 一旦这些被更新,ui和cli都会匹配。开心的日子