Saltar al contenido

¿Cómo personalizo la línea de asunto predeterminada de los correos electrónicos de Amazon SNS?

4 minutos de lectura
0

Quiero personalizar la línea de asunto del correo electrónico de Amazon Simple Notification Service (Amazon SNS) «Mensaje de la notificación de AWS» para una notificación de Amazon EventBridge.

Descripción corta

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. No puedes cambiar el asunto del correo electrónico Mensaje de la notificación de AWS directamente si algún servicio de AWS activa el tema de Amazon SNS que contiene la suscripción por correo electrónico.

Resolución

Crea una función de AWS Lambda para personalizar la línea de asunto predeterminada del correo electrónico. Puedes utilizar Lambda en lugar del tema de Amazon SNS como destino de la regla de EventBridge. A continuación, utiliza la función de Lambda para publicar mensajes con una línea de asunto de correo electrónico personalizada en el tema de Amazon SNS con los suscriptores.

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

Crea un tema de SNS y, a continuación, crea una suscripción por correo electrónico.

Creación de un rol de IAM para la función de Lambda

Para crear un rol de AWS Identity and Access Management (IAM) para la función de Lambda, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, elige Roles y, a continuación, Crear rol.
  3. Elige la lista desplegable Servicio o caso de uso, selecciona Lambda y, a continuación, elige Siguiente.
  4. En la página Agregar permisos, adjunta las políticas AWSLambdaBasicExecutionRole y AmazonSNSFullAccess al rol y, a continuación, elige Siguiente.
    Importante: La política administrada AmazonSNSFullAccess proporciona acceso total a Amazon SNS. Se recomienda seguir el principio del privilegio mínimo.
  5. En Nombre de rol, introduce un nombre y, a continuación, selecciona Crear rol.

Creación de la función de Lambda

Sigue estos pasos:

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

  2. Elige Crear una función.

  3. Selecciona Crear desde cero.

  4. En Nombre de función, introduce un nombre para la función.

  5. Elige la lista desplegable Versión ejecutable y, a continuación, selecciona Python 3.13.

  6. Amplía Cambiar el rol de ejecución predeterminado y, a continuación, elige Usar un rol existente.

  7. Selecciona la lista desplegable Rol existente y, a continuación, elige el rol que creaste anteriormente.

  8. Elige Crear una función.

  9. En el editor de código de la función, introduce el siguiente fragmento de código 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: Sustituye sns_topic_arn por el nombre de recurso de Amazon (ARN) de tema de Creación de un tema de SNS y una suscripción de correo electrónico. Sustituye «Esta es la línea de asunto personalizada» por tu propia línea de asunto, entre comillas.

  10. Elige Desplegar.

Creación de una regla de EventBridge

Sigue estas instrucciones para crear una regla de EventBridge.

Nota:

  • Para el paso 11 de la documentación de AWS, selecciona un destino y elige la función de Lambda que creaste en anteriormente.
  • Proporciona el mensaje de carga útil que desees 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 la línea de 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

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

OFICIAL DE AWSActualizada hace 3 meses