Correo electrónico: enviar notificaciones con Lambda

correo electrónico

Cómo enviar una notificación por correo electrónico mediante AWS Lambda

Amazon Simple Email Service (SES) y Amazon Simple Notification Service (SNS) son dos servicios que puede utilizar para enviar correo electrónico.

SES es un servicio de correos electrónicos rentable y escalable que se puede utilizar para enviar varios tipos de correo electrónico, incluidos mensajes de correo electrónico transaccionales, de marketing o masivos.

SNS le permite enviar mensajes a los usuarios a través de SMS, push móvil y correo electrónico (el correo es solo uno de los muchos métodos). Con SNS puede enviar un mensaje a muchos suscriptores.


SES y SNS tienen variaciones en sus costos. Si consideras el correo de entrega, con SES puedes enviar un correo estándar con todo el formato mientras que con SNS no tienes mucho espacio para formatear (por eso se llama notificación). Por lo tanto, debe considerar todos estos e implementarlos en consecuencia.

Esta es una actividad que puede probar con AWS Lambda y SNS. La tarea consiste en enviar una notificación por correo electrónico mediante AWS Lambda.

Primero, debe ir a Amazon SNS y crear un tema. Debe crear un tema, crear una suscripción y luego publicar en un tema. Luego, todos los suscriptores recibirán esa notificación (a Gmail o cualquier otra dirección de correo).

correo electrónico
Crear pantalla de tema

Elija un tipo de tema (estándar).

correo electrónico
Escoja un tema

 

Los temas FIFO se utilizan en combinación con las colas FIFO de Amazon Simple Queue Service (Amazon SQS) para crear aplicaciones que requieren que los mensajes se envíen y procesen en una secuencia estricta y sin duplicados.

 

SNS FIFO es una característica nueva.

El nombre para mostrar será la dirección “from”. Puede cambiar esto más tarde si lo desea.

A continuación, cree una suscripción. Seleccione “email” como protocolo. Proporcione su dirección de correo electrónico preferida al punto final. Solo puede dar una dirección de correo electrónico a la vez. Si desea enviar un mensaje a varios usuarios, debe crear varias suscripciones. Una vez que se crea la suscripción, recibirá un correo electrónico para suscribirse al tema. Asunto del correo: Notificación de AWS – Confirmación de suscripción. Haz clic en él para confirmar.

correo electrónico
Crear suscripción

Obtenga el ARN del tema de SNS.

Cree una función Lambda. Pega el siguiente código. Reemplace el snsArn con su ARN.

import boto3def lambda_handler(event, context):
    # TODO implement
    
    client = boto3.client('sns')
    snsArn = 'arn:aws:sns:Region:AccountID:TestTopic'
    message = "This is a test notification."
    
    response = client.publish(
        TopicArn = snsArn,
        Message = message ,
        Subject='Hello'
    )

Un último cheque. ¿Su función de Lambda IAM tiene la política administrada por AWS AmazonSNSFullAccess? Agréguelo y pruebe. ¡Eso es todo!

Correo electrónico recibido.

Supongamos que su función lambda es activada por algún otro evento. Esa salida de evento es una cadena JSON de la siguiente manera y desea capturarla. Luego agréguelo al correo electrónico. Tiene que hacer un cambio simple.

{"name":"John", "age":30, "car":"null"}import boto3def lambda_handler(event, context):
    # TODO implement
    
    client = boto3.client('sns')
    snsArn = 'arn:aws:sns:Region:AccountID:TestTopic'
    message = "This is a test notification."
    
    name = event.get("name")
    
    response = client.publish(
        TopicArn = snsArn,
        Message = message ,
        Subject='Hello ' + name
    )
Prueba con datos JSON

¡Eso es todo! Gracias por leer.

Recent Post