Direkt zum Inhalt

Wie passe ich die standardmäßige Amazon SNS-E-Mail-Betreffzeile 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 anpassen.

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. Du kannst die E-Mail-Betreffzeile AWS Notification Message nicht direkt ändern, wenn ein AWS-Service das Amazon SNS-Thema auslöst, das das E-Mail-Abonnement enthält.

Lösung

Erstelle eine AWS-Lambda-Funktion, um die Standard-E-Mail-Betreffzeile anzupassen. Du kannst Lambda anstelle des Amazon SNS-Themas als Ziel für die EventBridge-Regel verwenden. Verwenden dann die Lambda-Funktion, um Nachrichten mit benutzerdefinierter E-Mail-Betreffzeile zum Amazon SNS-Thema mit den Abonnenten zu veröffentlichen.

Erstellen eines SNS-Themas und E-Mail-Abonnements

Erstelle ein SNS-Thema und dann ein E-Mail-Abonnement.

Eine IAM-Rolle für die Lambda-Funktion erstellen

Gehe wie folgt vor, um eine Rolle für AWS Identity and Access Management (IAM) für die Lambda-Funktion zu erstellen:

  1. Öffne die IAM-Konsole.
  2. Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen aus.
  3. Wähle die Dropdownliste Service- oder Anwendungsfall aus, wähle Lambda und dann Weiter aus.
  4. Hänge auf der Seite Berechtigungen hinzufügen die Richtlinien AWSLambdaBasicExecutionRole und AmazonSNSFullAccessan an die Rolle an, und wählen dann Weiter aus.
    Wichtig: Die verwaltete AmazonSNSFullAccess-Richtlinie bietet vollen Zugriff auf Amazon SNS. Es ist eine bewährte Methode, dem Prinzip der geringsten geringste Berechtigung zu folgen.
  5. Gib im Feld Rollenname einen Namen für die Rolle ein, und wähle dann Rolle erstellen aus.

Erstellen der Lambda-Funktion

Führe die folgenden Schritte aus:

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

  2. Wählen Sie Erstellen Funktion aus.

  3. Wähle Ohne Vorgabe erstellen.

  4. Gib im Feld Funktionsname einen Namen für die Funktion ein.

  5. Wähle die Dropdownliste Laufzeit und wähle dann Python 3.13.

  6. Erweitere Standardausführungsrolle ändern, und wähle dann Eine vorhandene Rolle verwenden aus.

  7. Wähle die Dropdownliste Bestehende Rolle aus, und wähle dann die Rolle aus, die du zuvor erstellt hast.

  8. Wähle Funktion erstellen.

  9. Gib in der Funktion Code Editor den folgenden Python-Codeausschnitt ein:

    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: Ersetze sns_topic_arn durch das Thema Amazon-Ressourcenname (ARN) aus Erstellen eines SNS-Thema und einer E-Mail-Benachrichtigung. Ersetze „Dies ist die benutzerdefinierte Betreffzeile“ durch deine eigene Betreffzeile in Anführungszeichen.

  10. Wählen Sie Bereitstellen aus.

Erstellen eine EventBridge-Regel

Folge diesen Anweisungen, um eine EventBridge-Regel zu erstellen.

Hinweis:

  • Wähle für Schritt 11 in der AWS-Dokumentation unter ein Ziel auswählen, die Lambda-Funktion, die du zuvor erstellt hast.
  • Gib die Payload-Nachricht ein, die du für deine Lambda-Funktion benötigst.

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 die Betreffzeile, die 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

Wie verwende ich Lambda und Amazon SES zum Senden von E-Mails?

AWS OFFICIALAktualisiert vor 2 Monaten