使用AWS SNS时无法更新云形成堆栈:主题资源

时间:2015-12-17 09:20:39

标签: amazon-web-services amazon-sns amazon-cloudformation

我创建了一个创建一个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?

2 个答案:

答案 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)

如果您尝试更改主题订阅,也会发生这种情况。如果它是您的选项,只需在模板中更改主题名称,即可重新创建。