我正在使用boto3来更新Cloudformation堆栈。但是,我对模板所做的任何更改都不会因某些原因而保存。没有抛出错误,我看到(在Cloudformation事件日志中)已发生更新,但模板没有更改。
我正在尝试进行的更改是更改Metadata init部分中的某些脚本。
这是模板的缩写版本
"Metadata": {
"Build": {
"Ref": "Build"
},
"AWS::CloudFormation::Init": {
"configSets": {
"init": [
"init"
]
},
"init": {
"files": {
"/var/myapp/deploy.sh": {
"content": {
"Fn::Join": [
"",
[
"#!/bin/bash -ex\n",
"# I do some things here...",
"# I want to add some changes here..."
]
]
},
"context": {
"param1": {
"Ref": "param1"
},
"param2": {
"Ref": "param2"
},
},
"mode": "...",
"owner": "...",
"group": "..."
}
}
}
}
}
这是更新脚本</ p>
stack_name = 'MyStack'
updated_template_body = '...'
stack_params = [...]
client = boto3.client('cloudformation')
response = client.update_stack(
StackName=stack_name,
TemplateBody=updated_template_body,
Parameters=stack_params
)
响应始终为200 ok
响应,并且不会引发任何错误,但不会对模板进行任何更改。
根据this link,模板可以通过CLI更新,所以我不确定是什么问题。
调用cfn-init
似乎没有帮助,因为模板永远不会改变......
谢谢,