使用自訂資源訂閱 SNS 主題的多個電子郵件端點 - AWS Prescriptive Guidance

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用自訂資源訂閱 SNS 主題的多個電子郵件端點

由里卡多·莫拉斯 (AWS) 創建

環境:生產

技術:DevOps

AWS 服務:Amazon SNS; AWS CloudFormation; AWS Lambda

Summary

此模式說明如何訂閱多個電子郵件地址,以接收 Amazon Simple Notification Service (Amazon SNS) 主題的通知。它會將 AWS Lambda 函數做為 AWS CloudFormation 範本中的自訂資源。Lambda 函數與指定 SNS 主題的電子郵件端點的輸入參數相關聯。

目前,您可以使用 AWS CloudFormation 範本物件AWS::SNS::TopicAWS::SNS::Subscription,以訂閱 SNS 主題的單一端點。若要訂閱多個端點,您必須多次叫用物件。藉由使用 Lambda 函數做為自訂資源,您可以透過輸入參數訂閱多個端點。您可以在任何 AWS CloudFormation 範本中使用此 Lambda 函數做為自訂資源。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 在您的本機環境中設定的 AWS 設定檔,具有存取金鑰和私密金鑰。您也可以從AWS Cloud9

  • 授予下列許可:

    • AWS Identity and Access Management (IAM) 角色和政策

    • AWS Lambda 功能

    • 上傳 Lambda 函數的 Simple Storage Service (Amazon S3)

    • Amazon SNS 主題和政策

    • AWS CloudFormation 堆疊

限制

  • 此程式碼支援 Linux 和 macOS 工作站。

產品版本

  • AWS Command Line Interface (AWS CLI) 第 2 版或更新版本。

Architecture

目標技術堆疊

  • AWS CloudFormation

  • Amazon SNS

  • AWS Lambda

Tools

工具

Code

附件包括下列檔案:

  • Lambda 函數:lambda_function.py

  • AWS CloudFormation 範本:範本 .yaml

  • 用於處理多個或單一電子郵件端點訂閱的兩個參數檔案:參數多重 values.json (用作預設值) 和參數單一值 .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

Epics

任務描述所需技能
設定 SNS 主題訂閱的電子郵件端點。

編輯檔案參數-單一值 .json (已附加),並變更 PSNs通知郵件參數的值,以反映您要使用的電子郵件地址,例如 someone@example.com。

部署建立資源和訂閱的 AWS CloudFormation 式堆疊。

使用您的 AWS 設定檔名稱、AWS 區域和參數單值 .json 檔案執行「deploy.sh」命令,如「程式碼」區段所示。

具有適當許可的 IAM 角色
任務描述所需技能
設定 SNS 主題訂閱的電子郵件端點。

編輯檔案參數-多重值 .json (已附加),並變更 PSNs通知郵件參數的值,以反映您要使用的電子郵件地址,並以逗號分隔,如下所示:someone1@example.com, someone2@example.com。

部署建立資源和訂閱的 AWS CloudFormation 式堆疊。

使用您的 AWS 設定檔名稱和 AWS 區域執行「deploy.sh」命令,如「程式碼」區段所示。您不必指定參數多值 .json 檔案,因為它是預設使用的。

具有適當許可的 IAM 角色
任務描述所需技能
建立 SNS 主題。

透過 AWS CloudFormation 範本建立 SNS 主題,而不需在 AWS። SNS። 主題範本物件中指定訂閱終端節點。您可以在附件中使用範本 .yaml 做為起點。

具有適當許可的 IAM 角色
建立 SNS 主題政策。

在 AWS CloudFormation 範本中建立 SNS 主題政策。

具有適當許可的 IAM 角色
請將電子郵件端點清單訂閱至 SNS 主題。

根據電子郵件端點清單 (一或多個),將端點訂閱至您建立的 SNS 主題。

具有適當許可的 IAM 角色

References

必要的工具

Attachments

attachment.zip