本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用自定义资源为多个电子邮件终端节点订阅一个SNS主题
由里卡多·莫赖斯创作 () AWS
摘要
注意,2022 年 8 月:AWS CloudFormation 现在支持通过:AWS:SNS: Topic 对象及其订阅属性订阅多个资源。
此模式描述如何订阅多个电子邮件地址以接收来自亚马逊简单通知服务 (AmazonSNS) 主题的通知。它使用 L AWS ambda 函数作为模板中的自定义资源。AWS CloudFormation Lambda 函数与指定主题电子邮件终端节点的输入参数相关联。SNS
目前,您可以使用AWS CloudFormation 模板对象AWS::: Topic 和::SNS: Subscri AWSbuti SNS on 来订阅单个终端节点订阅主题。SNS要订阅多个端点,您必须多次调用该对象。通过将 Lambda 函数用作自定义资源,您可以通过输入参数订阅多个端点。您可以将此 Lambda 函数用作任何AWS CloudFormation 模板中的自定义资源。
先决条件和限制
先决条件
一个活动的 AWS 账户。
在您的本地环境中使用访问密钥和私有密钥AWS配置的配置文件。
以下内容的权限:
AWSIdentity and Access Management (IAM) 角色和策略
AWS Lambda 函数
用于上传 Lambda 函数 的 Amazon Simple Storage Service (Amazon S3)
Amazon SNS 主题和政策
AWS CloudFormation 堆栈
限制
此代码支持 Linux 和 macOS 工作站。
产品版本
AWS命令行界面 (AWSCLI) 版本 2 或更高版本。
架构
目标技术堆栈
AWS CloudFormation
Amazon SNS
AWS Lambda
工具
工具
代码
附件包括以下文件:
Lambda 函数:
lambda_function.py
AWS CloudFormation 模板:
template.yaml
用于处理多个或单个电子邮件端点订阅的两个参数文件:
parameters-multiple-values.json
(用作默认值)和parameters-one-value.json
要部署堆栈,您可使用任一参数文件。要指定多个电子邮件端点,请执行以下操作:
./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION>
要指定单个电子邮件端点,请执行以下操作:
./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION> -f parameters-one-value.json
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
为SNS主题订阅配置电子邮件终端节点。 | 编辑文件 | |
部署创建资源和订阅的AWS CloudFormation 堆栈。 | 使用您的AWS个人资料名称、AWS地区和
| IAM具有适当权限的角色 |
任务 | 描述 | 所需技能 |
---|---|---|
为SNS主题订阅配置电子邮件终端节点。 | 编辑文件 | |
部署创建资源和订阅的AWS CloudFormation 堆栈。 | 使用您的AWS个人资料名称和AWS地区运行 deploy.sh 命令。您不必指定
| IAM具有适当权限的角色 |
任务 | 描述 | 所需技能 |
---|---|---|
创建一个 SNS 主题。 | 通过模板创建SNS主题,无需在AWS CloudFormation | IAM具有适当权限的角色 |
创建SNS主题策略。 | 在AWS CloudFormation 模板中创建SNS主题策略。 | IAM具有适当权限的角色 |
在电子邮件终端节点列表中订阅该SNS主题。 | 根据电子邮件终端节点(一个或多个)列表,为终端节点订阅您创建SNS的主题。 | IAM具有适当权限的角色 |
相关资源
参考
必要工具
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip