Amazon web services CloudFormation-在禁用状态下创建SNS订阅

Amazon web services CloudFormation-在禁用状态下创建SNS订阅,amazon-web-services,amazon-cloudformation,amazon-sns,Amazon Web Services,Amazon Cloudformation,Amazon Sns,有没有办法在禁用状态下创建SNS订阅?这是给一个lambda的,如果这有区别的话 例如: MySubscription: Type: AWS::SNS::Subscription Properties: Endpoint: arn:aws:lambda:region:account-id:function:mylambda Protocol: lambda TopicArn: arn:aws:sns:region:account-id:topic Enab

有没有办法在禁用状态下创建SNS订阅?这是给一个lambda的,如果这有区别的话

例如:

MySubscription:
  Type: AWS::SNS::Subscription
  Properties:
    Endpoint: arn:aws:lambda:region:account-id:function:mylambda
    Protocol: lambda
    TopicArn: arn:aws:sns:region:account-id:topic
    Enabled: false # like this

在AWS CloudFormation文档中找不到类似的内容

CloudFormation没有一种方法符合您的示例。根据,
AWS::SNS::Subscription
未将“启用”作为设置


尽管如此,文档中确实说明了端点的所有者必须在Amazon SNS创建订阅之前确认订阅。因此,从某种意义上说,它已经被禁用,因为在您在SNS主题上确认它之前,它不存在。

您可以在订阅创建上创建一个条件

首先添加一个参数:

   "CreateSubscription": {
      "Type": "String",
      "AllowedValues": [
        "true",
        "false"
      ],
      "Description": "Create subscription to sns"
    }
在“参数”部分之后,创建“条件”部分:

"Conditions" : {
    "CreateSubscription" : {"Fn::Equals" : [{"Ref" : "CreateSubscription"}, "true"]}
  }
将条件添加到订阅中

"Subscription": {
      "Type": "AWS::SNS::Subscription",
      "Condition" : "CreateSubscription",
      [...]
}
当您想要“激活”您的订阅时,您只需更改参数值,并使用相同的模板更新堆栈