デフォルトの Amazon SNS E メールメッセージをカスタマイズする方法を教えてください。

所要時間2分
0

Amazon EventBridge 通知用に、デフォルトの Amazon Simple Notification Service (Amazon SNS) の E メールの件名「AWS 通知メッセージ」を変更したいと考えています。

簡単な説明

Amazon SNS は、AWS サービスをイベントソースとして作成された EventBridge ルールからの通知を受け取り、E メールで配信します。件名「AWS 通知メッセージ」と E メール本文は固定されていることに注意してください。AWS サービスが E メールサブスクリプションを持つ Amazon SNS トピックをトリガーする場合、これらを直接変更することはできません。

ワークフロー

  1. イベントによって EventBridge ルールがトリガーされます。
  2. EventBridge ルールのペイロードを使用して、Lambda 関数を呼び出します。
  3. Lambda 関数で Amazon SNS publish API を呼び出します。
  4. Amazon SNS から、カスタムの件名と本文を含むメッセージまたは E メール通知が配信されます。

解決策

アーキテクチャに AWS Lambda を組み込み、必要に応じてデフォルトの E メールの件名とメッセージ本文をカスタマイズします。Amazon SNS トピックの代わりに AWS Lambda をEventBridge ルールのターゲットとして使用できます。次に、Lambda 関数を使用して、カスタム E メールの件名と本文を含むメッセージをサブスクライバーのいる Amazon SNS トピックに発行します。

通知をカスタマイズするには、次の手順に従います。

SNS トピックと、E メールのサブスクリプションを作成する

  1. SNS トピックを作成します。
  2. E メールサブスクリプションを作成します。

Lambda 関数を作成する

  1. Lambda コンソールの関数のページを開きます。

  2. [関数の作成] を選択します。

  3. [最初から作成] を選択します。

  4. 関数名を指定し、ランタイムには Python 3.10 を選択します。

  5. 実行ロールを作成します。このロールには、指定した SNS トピックを公開するために必要な権限が必要です。ここでは、Lambda 関数が Lambda の AWS マネージドポリシーで作成されています。

  6. 関数の実行ロールに AWS Lambda BasicExecutionRoleAmazonSNSFullAccess ポリシーをアタッチします。Lambda の実行ポリシーをアタッチするには、Lambda 実行ロールを参照してください。

  7. [関数の作成] を選択します。関数コードエディターに、次のコードを貼り付けます。
    **重要:**このコードスニペットは参照用です。テストする前に、本番環境でサンプルコードスニペットを使用しないでください。

    例: Python サンプルコード

    import boto3
    import json
    sns_arn = "sns_topic_arn"
    
    def lambda_handler(event, context):
        client = boto3.client("sns")
        resp = client.publish(TargetArn=sns_arn, Message=json.dumps(event), Subject="This is the customized subject line")

    注:sns\ _topic\ _arnを、[SNS トピックと電子メール通知の作成]** のトピック ARN に置き換えます**。「これはカスタマイズされた件名です」を、引用符で囲んだ独自の件名に置き換えてください。

  8. [デプロイ] を選択します。

EventBridge ルールを作成する

Amazon EventBridge コンソールを使用して EventBridge ルールを作成します。

注:

  • AWS ドキュメントのステップ 11 の**[ターゲットの選択]** では、[Lambda 関数の作成] で作成した Lambda 関数を選択します。
  • Lambda 関数に必要なペイロードメッセージを指定します。

EventBridge ルールが呼び出されると、Lambda 関数は Amazon SNS に対して Publish API 呼び出しを行います。メッセージの配信に使用する件名を変更すると同時に、イベントルールのメッセージを転送します。サブスクライバーは、カスタマイズされた件名のメールをメールボックスに受信します。

関連情報

Amazon SNS トピックからの E メール通知を受け取ることができないのはなぜですか?

Amazon SNS サブスクリプションが手動で非アクティブ化されたとの E メールが AWS から届いたのですが、なぜですか?

メーリングリストの受信者が Amazon SNS トピックに関する E メールから他のメンバーのサブスクリプションを解除できないようにするには、どうすればよいですか?

Amazon CloudWatch アラームトリガーに関する SNS 通知が届かなくなったのはなぜですか?

Lambda と Amazon SES を使用して E メールを送信する方法を教えてください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ