【问题标题】:Pass email address list to SNS subscription endpoint将电子邮件地址列表传递给 SNS 订阅端点
【发布时间】:2021-04-20 16:57:52
【问题描述】:

是否可以将电子邮件地址列表作为 SNS 订阅的端点传递?

我有类似的东西

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources" : {
      "EmailSNSTopic": {
        "Type" : "AWS::SNS::Topic",
        "Properties" : {
          "DisplayName" : "${display_name}"
        }
      },
      "MySubscription": {
        "Type": "AWS::SNS::Subscription",
        "Properties": {
          "TopicArn" : { "Ref" : "EmailSNSTopic" },
          "Endpoint" : "foo@foo.com"
          "Protocol" : "email"
        }
      }
    },
      "Outputs" : {
        "ARN" : {
          "Description" : "Email SNS Topic ARN",
          "Value" : { "Ref" : "EmailSNSTopic" }
        }
      }
}

但我想做的是传递多个电子邮件地址,而不仅仅是一个。

【问题讨论】:

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


    【解决方案1】:

    根据documentation

    端点应该是一个字符串

    Cloudformation 不允许您传递列表。

    您也不想拥有自定义资源。

    还有一种方法Running bash commands in AWS CloudFormation templates

    你只需像下面那样运行awscli command

        Resources:
        Command:
            Type: 'AWSUtility::CloudFormation::CommandRunner'
            Properties:
            Command: aws s3 ls > /command-output.txt
            Role: String
            LogGroup: String #Optional
            SubnetId: String #Optional
            SecurityGroupId: String #Optional
            KeyId: String #Optional
    

    【讨论】:

    • 非常感谢@samtoddler。这是有道理的。不过,我将如何使用它来传递电子邮件地址列表?我不完全确定。
    • 您只需使用电子邮件列表并像在 shell 脚本或命令行中那样遍历它们。 ;做 aws cli 确认订阅 $x;done>
    【解决方案2】:

    我认为使用本机语法是不可能的。

    您可能想尝试 aws 云形成自定义资源并将列表传递给 lambda 以逐个执行。

    【讨论】:

    • 谢谢。正是我希望避免的。
    猜你喜欢
    • 1970-01-01
    • 2022-10-20
    • 2016-04-08
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2015-07-20
    相关资源
    最近更新 更多