如何在 CloudFormation 脚本上添加 SNS 主题的电子邮件订阅?

How to add email subscription of SNS Topic on CloudFormation Script?

  TestTopicSubscription:
  Type: AWS::SNS::Subscription
  Properties:
    Endpoint: testn@email.com
    Protocol: email
    TopicArn: !Ref TestSnsTopic

如何将多个电子邮件 ID(例如:test1@email.com、test2@email.com)的订阅添加到上面的列表?

CloudFormation 中没有循环,AWS::SNS::Subscription 不采用任何列表。

所以你的选择是:

  1. 使用 AWS CLI 或 SDK 以编程方式基于单个模板创建多个堆栈。模板将被参数化,其中参数将是您的端点。因此,例如,使用 bash 或 python,您将不得不遍历列表并创建相应的订阅。

  2. 在 CloudFormation 中创建一个 custom resource 以获取您的电子邮件列表并创建相应的订阅。资源将采用 lambda 函数 的形式,它将使用 AWS SDK 创建所需的订阅。

  3. 除了自定义资源,您还可以在 CloudFormation 中创建 macro

  4. 手动 copy-and-paste 订阅模板,如果您在一个模板中只有少数订阅模板。