Come posso personalizzare i messaggi e-mail predefiniti di Amazon SNS?

3 minuti di lettura
0

Come posso modificare l'oggetto dell'e-mail predefinita di Amazon SNS, "Messaggio di notifica AWS", per una notifica 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. Tieni presente che l'oggetto "Messaggio di notifica AWS" e il corpo dell'e-mail sono fissi. Non puoi modificarli direttamente se un servizio AWS attiva l'argomento Amazon SNS che include l'abbonamento e-mail.

Flusso di lavoro

  1. Un evento attiva una regola EventBridge.
  2. Il payload della regola EventBridge richiama la funzione Lambda.
  3. La funzione Lambda chiama l'API Amazon SNS Publish.
  4. Amazon SNS invia un messaggio o una notifica e-mail con "Oggetto" e "Corpo" personalizzati.

Risoluzione

Includi AWS Lambda nell'architettura per personalizzare l'oggetto e il corpo del messaggio predefiniti dell'e-mail in base alle esigenze. Puoi utilizzare AWS Lambda anziché l'argomento Amazon SNS come obiettivo per la regola EventBridge. Quindi, usa la funzione Lambda per pubblicare messaggi con oggetto e corpo e-mail personalizzati sull'argomento Amazon SNS con gli abbonati.

Segui questi passaggi per personalizzare la notifica.

Crea un argomento SNS e un abbonamento e-mail

  1. Crea un argomento SNS.
  2. Crea un abbonamento e-mail.

Crea la funzione Lambda

  1. Apri la pagina Funzioni della console Lambda.

  2. Scegli Crea funzione.

  3. Seleziona Crea da zero.

  4. Fornisci il nome della funzione, quindi seleziona il runtime come Python 3.10.

  5. Crea un ruolo di esecuzione. Questo ruolo deve disporre delle autorizzazioni necessarie per pubblicare l'argomento SNS specificato. Qui, la tua funzione Lambda è stata creata con la policy gestita da AWS per Lambda.

  6. Allega le policy AWSLambdaBasicExecutionRole e AmazonSNSFullAccess al ruolo di esecuzione della funzione. Per allegare la policy di esecuzione per Lambda, vedi Ruolo di esecuzione Lambda.

  7. Scegli Crea funzione. Nella funzione Editor del codice, incolla questo codice:
    Importante: questo frammento di codice è solo di riferimento. Non utilizzare frammenti di codice di esempio nell'ambiente di produzione prima di averlo testato.

    Esempio: Codice di esempio in 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 l'argomento ARN di Crea un argomento SNS e notifica e-mail. Sostituisci "Questo è l'oggetto personalizzato" con il tuo oggetto, tra virgolette.

  8. Scegli Implementa.

Crea una regola EventBridge

Crea una regola EventBridge utilizzando la console Amazon EventBridge.

Nota:

  • Per il passaggio 11 della documentazione AWS, Seleziona un obiettivo, scegli la funzione Lambda che hai creato in Crea una funzione Lambda.
  • Fornisci il messaggio di payload che desideri per la tua 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. L'abbonato riceve quindi l'e-mail con l'oggetto personalizzato nella propria casella di posta.

Informazioni correlate

Perché non riesco a ricevere notifiche e-mail dal mio argomento Amazon SNS?

Perché ho ricevuto un'e-mail da AWS in cui si afferma che il mio abbonamento Amazon SNS è stato disabilitato manualmente?

How do I keep mailing list recipients from unsubscribing everyone on the list from my Amazon SNS topic emails?

Perché non ho ricevuto una notifica SNS per l'attivazione del mio allarme di CloudWatch?

Come faccio a inviare e-mail utilizzando Lambda e Amazon SES?

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa