Wie passe ich standardmäßige Amazon SNS-E-Mail-Nachrichten an?
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
- Ein Ereignis löst eine EventBridge-Regel aus.
- Die Nutzlast der EventBridge-Regel ruft die Lambda-Funktion auf.
- Die Lambda-Funktion ruft die Amazon SNS Publish API auf.
- Amazon SNS übermittelt eine Nachricht oder E-Mail-Benachrichtigung mit den benutzerdefinierten Betreff und Text.
Behebung
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
- Erstellen ein SNS-Thema.
- Erstellen Sie ein E-Mail-Abonnement.
Erstellen Sie die Lambda-Funktion
-
Öffnen Sie die Funktionsseite der Lambda-Konsole.
-
Wählen Sie Erstellen Funktion aus.
-
Wählen Sie Autor von Grund auf neu.
-
Geben Sie den Funktionsnamen an und wählen Sie dann als Laufzeit Python 3.10 aus.
-
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.
-
Hängen Sie die Richtlinien AWSLambdaBasicExecutionRole und AmazonSNSFullAccess an die Ausführungsrolle der Funktion an. Informationen zum Anhängen der Ausführungsrichtlinie für Lambda finden Sie unter Lambda-Ausführungsrolle.
-
Wählen Sie Erstellen Funktion aus. Fügen Sie im Code-Editor 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.
-
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 keine SNS-Benachrichtigung für meinen CloudWatch-Alarmauslöser erhalten?
Wie verwende ich Lambda und Amazon SES zum Senden von E-Mails?
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren