我创建了一个创建一个SNS :: Topic和一堆其他资源的cloudformation模板。问题现在是当我尝试更新堆栈时,它失败并出现以下错误
"Update to resource type AWS::SNS::Topic is not supported"
堆栈策略是:
{
"Statement" : [
{
"Effect" : "Deny",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*",
"Condition" : {
"StringEquals" : {
"ResourceType" : ["AWS::SNS::Topic", "AWS::EC2::Subnet"]
}
}
},
{
"Effect" : "Allow",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*"
}
]
}
CF模板
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "......",
"Resources": {
"MySNSTopic":{
"Type":"AWS::SNS::Topic",
"Properties":{
"DisplayName": "",
"Subscription": [ ],
"TopicName": { "Fn::Join": [ "-", [ "Simple", "sns", "topic" ] ] }
}
}
}
是否有任何(甚至可以破解)我可以更改为让aws完成aws更新堆栈而不删除/修改sns_topic?
答案 0 :(得分:1)
我认为错误消息Update to resource type AWS::SNS::Topic is not supported
不抱怨您的权限,但有关SNS主题的CloudFormation模板的限制。
documentation for SNS resource templates声明如下:
重要强>
创建Amazon SNS主题后,您无法更新它 使用AWS CloudFormation的属性。您可以修改Amazon SNS 使用AWS管理控制台进行主题。
相反,您可以尝试添加新主题,切换客户端以使用新主题,然后删除旧主题。如果你是偏执狂,你可以单独更新。
答案 1 :(得分:0)
如果您尝试更改主题订阅,也会发生这种情况。如果它是您的选项,只需在模板中更改主题名称,即可重新创建。