我有一个现有的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实例和安全组的较小堆栈上进行了测试,并且更新无需重新创建资源即可。
答案 0 :(得分:0)
第二个“ $ true”中是否缺少“ $”?
答案 1 :(得分:0)
我能够对此进行排序,更改是ami和vpn BGP默认值的默认值。
我可以通过在CLI内创建更改集并更清楚地检查更改来找到它。 一旦这些被更新,ui和cli都会匹配。开心的日子