¿Cómo puedo personalizar los mensajes de correo electrónico predeterminados de Amazon SNS?

4 minutos de lectura
0

Quiero modificar el asunto del correo electrónico estándar de Amazon Simple Notification Service (Amazon SNS) «Mensaje de la notificación de AWS» para una notificación de Amazon EventBridge.

Descripción breve

Amazon SNS recibe notificaciones de una regla de EventBridge que se creó con los servicios de AWS como origen de eventos para su entrega por correo electrónico. Tenga en cuenta que el asunto «Mensaje de la notificación de AWS» y el cuerpo del correo electrónico son fijos. No puede cambiarlos directamente si algún servicio de AWS activa el tema de Amazon SNS que contiene la suscripción por correo electrónico.

Flujo de trabajo

  1. Un evento desencadena una regla de EventBridge.
  2. La carga de la regla de EventBridge invoca la función de Lambda.
  3. La función de Lambda llama a la API de publicación de Amazon SNS.
  4. Amazon SNS entrega un mensaje o una notificación por correo electrónico con el «asunto» y el «cuerpo» personalizados».

Resolución

Incluya AWS Lambda en la arquitectura para personalizar el asunto del correo electrónico y el cuerpo del mensaje predeterminados según sea necesario. Puede utilizar AWS Lambda en lugar del tema de Amazon SNS como destino de la regla de EventBridge. A continuación, utilice la función de Lambda para publicar mensajes con un asunto y un cuerpo de correo personalizados en el tema de Amazon SNS con los suscriptores.

Siga estos pasos para personalizar la notificación.

Creación de un tema de SNS y una suscripción de correo electrónico

  1. Cree un tema de SNS.
  2. Cree una suscripción de correo electrónico.

Creación de la función de Lambda

  1. Abra la página Funciones de la consola de Lambda.

  2. Elija Crear una función.

  3. Seleccione Crear desde cero.

  4. Proporcione el nombre de la función y, a continuación, seleccione Python 3.10 como versión ejecutable.

  5. Cree un rol de ejecución. Esta función debe tener los permisos necesarios para publicar el tema de SNS especificado. Aquí, su función de Lambda se creó con la política administrada de AWS para Lambda.

  6. Adjunte la política AWSLambdaBasicExecutionRole y AmazonSNSFullAccess al rol de ejecución de la función. Para adjuntar la política de ejecución de Lambda, consulte Rol de ejecución de Lambda.

  7. Elija Crear una función. En la función Editor de código, pegue este código:
    Importante: Este fragmento de código es solo de referencia. No utilice fragmentos de código de ejemplo en su entorno de producción antes de probarlos.

    Ejemplo: Código de ejemplo de 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: Sustituya sns_topic_arn por el ARN de tema de Creación de un tema de SNS y una suscripción de correo electrónico. Sustituya «Esta es la línea de asunto personalizada» por su propia línea de asunto, entre comillas.

  8. Elija Desplegar.

**Creación de una regla de EventBridge **

Cree una regla de EventBridge mediante la consola de Amazon EventBridge.

Nota:

  • Para el paso 11 de la documentación de AWS, seleccione un destino y elija la función de Lambda que creó en Creación de la función de Lambda.
  • Proporcione el mensaje de carga que desee para la función de Lambda.

Cuando se invoca la regla de EventBridge, la función de Lambda realiza una llamada a la API de publicación a Amazon SNS. Reenvía el mensaje de la regla de eventos y cambia el asunto que utiliza para entregar el mensaje. A continuación, el suscriptor recibe el correo electrónico con el asunto personalizado en su buzón de correo.

Información relacionada

¿Por qué no puedo recibir notificaciones por correo electrónico de mi tema de Amazon SNS?

¿Por qué he recibido un correo electrónico de AWS en el que se indica que mi suscripción de Amazon SNS se ha desactivado manualmente?

¿Cómo puedo evitar que los destinatarios de las listas de correo cancelen la suscripción de todos los demás destinatarios de la lista de mis correos electrónicos con temas de Amazon SNS?

¿Por qué no he recibido una notificación de SNS para activar mi alarma de CloudWatch?

¿Cómo puedo enviar correos electrónicos con Lambda y Amazon SES?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses