Wie passe ich standardmäßige Amazon SNS-E-Mail-Nachrichten an?

Lesedauer: 3 Minute
0

Ich möchte die standardmäßige E-Mail-Betreffzeile „AWS Notification Message“ von Amazon Simple Notification Service (Amazon SNS) für eine Amazon EventBridge-Benachrichtigung ändern.

Kurzbeschreibung

Amazon SNS empfängt Benachrichtigungen von einer EventBridge-Regel, die mit AWS-Services als Ereignisquelle für die Zustellung per E-Mail erstellt wurde. Beachten Sie, dass die Betreffzeile „AWS Notification Message“ und der E-Mail-Text behoben sind. Sie können diese nicht direkt ändern, wenn ein AWS-Service das Amazon SNS-Thema auslöst, für das das E-Mail-Abonnement gilt.

Arbeitsablauf

  1. Ein Ereignis löst eine EventBridge-Regel aus.
  2. Die Nutzlast der EventBridge-Regel ruft die Lambda-Funktion auf.
  3. Die Lambda-Funktion ruft die Amazon SNS Publish API auf.
  4. Amazon SNS übermittelt eine Nachricht oder E-Mail-Benachrichtigung mit den benutzerdefinierten „Betreff“ und „Text.“

Lösung

Integrieren Sie AWS Lambda in die Architektur, um die Standard-E-Mail-Betreffzeile und den Nachrichtentext nach Bedarf anzupassen. Sie können AWS Lambda anstelle des Amazon SNS-Themas als Ziel für die EventBridge-Regel verwenden. Verwenden Sie dann die Lambda-Funktion, um Nachrichten mit benutzerdefiniertem E-Mail-Betreff und Text zum Amazon SNS-Thema mit den Abonnenten zu veröffentlichen.

Gehen Sie wie folgt vor, um die Benachrichtigung anzupassen.

Erstellen Sie ein SNS-Thema und ein E-Mail-Abonnement

  1. Erstellen ein SNS-Thema.
  2. Erstellen Sie ein E-Mail-Abonnement.

Erstellen Sie die Lambda-Funktion

  1. Öffnen Sie die Funktionsseite der Lambda-Konsole.

  2. Wählen Sie Erstellen Funktion aus.

  3. Wählen Sie Autor von Grund auf neu.

  4. Geben Sie den Funktionsnamen an und wählen Sie dann als Laufzeit Python 3.10 aus.

  5. Erstellen Sie eine Ausführungsrolle. Diese Rolle muss über die erforderlichen Berechtigungen verfügen, um das angegebene SNS-Thema zu veröffentlichen. Hier wurde Ihre Lambda-Funktion mit der von AWS verwalteten Richtlinie für Lambda erstellt.

  6. Hängen Sie die AWSLambdaBasicExecutionRole - und ** AmazonSNSFullAccess **-Richtlinie an die Ausführungsrolle der Funktion an. Informationen zum Anhängen der Ausführungsrichtlinie für Lambda finden Sie unter Lambda-Ausführungsrolle.

  7. Wählen Sie Erstellen Funktion aus. Fügen Sie im Code Redakteur der Funktion diesen Code ein:
    Wichtig: Dieser Codeausschnitt dient nur als Referenz. Verwenden Sie in Ihrer Produktionsumgebung keine Beispielcodefragmente, bevor Sie sie testen.

    Beispiel: Python-Beispielcode

    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")

    Hinweis: Ersetzen Sie ** sns_topic_arn** durch das Thema ARN aus Erstellen Sie ein SNS-Thema und E-Mail-Benachrichtigung. Ersetzen Sie „Dies ist die benutzerdefinierte Betreffzeile“ durch Ihre eigene Betreffzeile in Anführungszeichen.

  8. Wählen Sie Bereitstellen aus.

Erstellen eine EventBridge-Regel

Erstellen Sie eine EventBridge-Regel mithilfe der Amazon EventBridge-Konsole.

Hinweis:

  • Wählen Sie für Schritt 11 in der AWS-Dokumentation, Wählen Sie ein Ziel aus, die Lambda-Funktion, die Sie unter Erstellen eine Lambda-Funktion erstellt haben.
  • Geben Sie die Payload-Nachricht ein, die Sie für Ihre Lambda-Funktion benötigen.

Wenn die EventBridge-Regel aufgerufen wird, führt die Lambda-Funktion einen Publish-API-Aufruf an Amazon SNS durch. Es leitet die Nachricht der Ereignisregel weiter und ändert gleichzeitig den Betreff, den es für die Zustellung der Nachricht verwendet. Der Abonnent erhält dann die E-Mail mit der benutzerdefinierten Betreffzeile in seinem Postfach.

Ähnliche Informationen

Warum kann ich keine E-Mail-Benachrichtigungen von meinem Amazon SNS-Thema erhalten?

Warum habe ich von AWS eine E-Mail erhalten, dass mein Amazon SNS-Abonnement manuell deaktiviert wurde?

Wie verhindere ich, dass Empfänger von Mailinglisten jeden auf der Liste von meinen Amazon SNS-Themen-E-Mails abmelden?

Warum habe ich keine SNS-Benachrichtigung für meinen CloudWatch-Alarmauslöser erhalten?

Wie sende ich E-Mails mit Lambda und Amazon Simple Email Service (Amazon SES)?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 9 Monaten