Desidero personalizzare l'oggetto predefinito dell'e-mail di Amazon Simple Notification Service (Amazon SNS) "AWS Notification Message" per una notifica di Amazon EventBridge.
Breve descrizione
Amazon SNS riceve notifiche da una regola EventBridge creata con i servizi AWS come origine degli eventi per la distribuzione via e-mail. Non puoi modificare direttamente l'oggetto dell'e-mail AWS Notification Message se un servizio AWS attiva il topic Amazon SNS con sottoscrizione e-mail.
Risoluzione
Crea una funzione AWS Lambda per personalizzare l'oggetto predefinito dell'e-mail. Puoi utilizzare Lambda anziché il topic Amazon SNS come destinazione per la regola EventBridge. Quindi utilizza la funzione Lambda per pubblicare messaggi con oggetto e corpo dell'e-mail personalizzati sul topic Amazon SNS con i sottoscrittori.
Crea un topic SNS e una sottoscrizione e-mail
Crea un topic SNS, quindi crea una sottoscrizione e-mail.
Crea un ruolo IAM per la funzione Lambda
Per creare un ruolo AWS Identity and Access Management (AWS IAM) per la funzione Lambda, completa i seguenti passaggi:
- Apri la console IAM.
- Nel pannello di navigazione, seleziona Ruoli, quindi scegli Crea ruolo.
- Scegli l'elenco a discesa Servizio o caso d'uso, seleziona Lambda, quindi scegli Avanti.
- Nella pagina Aggiungi autorizzazioni, collega le policy AWSLambdaBasicExecutionRole e AmazonSNSFullAccess al ruolo, quindi scegli Avanti.
Importante: la policy gestita AmazonSNSFullAccess fornisce l'accesso completo ad Amazon SNS. È consigliabile seguire il principio del privilegio minimo.
- In Nome ruolo, inserisci un nome per il ruolo, quindi scegli Crea ruolo.
Crea la funzione Lambda
Completa i seguenti passaggi:
-
Apri la pagina Funzioni della console Lambda.
-
Scegli Crea funzione.
-
Seleziona Crea da zero.
-
In Nome funzione, inserisci un nome per la funzione.
-
Scegli l'elenco a discesa Runtime, quindi seleziona Python 3.13.
-
Espandi Modifica del ruolo di esecuzione predefinito, quindi scegli Utilizza un ruolo esistente.
-
Scegli l'elenco a discesa Ruolo esistente, quindi seleziona il ruolo che hai creato in precedenza.
-
Scegli Crea funzione.
-
Nell'Editor del codice della funzione, inserisci il seguente frammento di codice 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")
Nota: sostituisci sns_topic_arn con il nome della risorsa Amazon (ARN) del topic da Create an SNS topic and email notification (Crea un topic SNS e una notifica e-mail). Sostituisci "Questo è l'oggetto personalizzato" con il tuo oggetto, tra virgolette.
-
Scegli Implementa.
Crea una regola EventBridge
Segui queste istruzioni per creare una regola EventBridge.
Nota:
- Per il passaggio 11 della documentazione AWS, Seleziona una destinazione, scegli la funzione Lambda che hai creato in precedenza.
- Specifica il messaggio di payload che desideri per la funzione Lambda.
Quando viene richiamata la regola EventBridge, la funzione Lambda effettua una chiamata API publish ad Amazon SNS, inoltra il messaggio della regola dell'evento cambiando l'oggetto utilizzato per recapitare il messaggio e il sottoscrittore riceve l'e-mail con l'oggetto personalizzato nella propria casella di posta.
Informazioni correlate
Come posso inviare e-mail utilizzando Lambda e Amazon SES?