Suscriba varios puntos de conexión de correo electrónico a un tema de SNS mediante un recurso personalizado - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Suscriba varios puntos de conexión de correo electrónico a un tema de SNS mediante un recurso personalizado

Creado por Ricardo Morais (AWS)

Entorno: producción

Tecnologías: DevOps

Servicios de AWS: Amazon SNS CloudFormation; AWS Lambda

Resumen

Nota, agosto de 2022: AWS CloudFormation ahora admite la suscripción de varios recursos a través del AWS::SNS::Topicobjeto y su atributo de suscripción.

Este patrón describe cómo suscribirse a varias direcciones de correo electrónico para recibir notificaciones de un tema de Amazon Simple Notification Service (Amazon SNS). Utiliza una función de AWS Lambda como recurso personalizado en una plantilla de AWS CloudFormation . La función de Lambda está asociada a un parámetro de entrada que especifica los puntos de conexión de correo electrónico del tema de SNS.

Actualmente, puede utilizar los objetos de CloudFormation plantilla de AWS AWS::SNS::Topicy AWS::SNS::Subscriptionsuscribir puntos de enlace únicos a temas de SNS. Para suscribir varios puntos de conexión, debe invocar el objeto varias veces. Al utilizar la función de Lambda como recurso personalizado, puede suscribir varios puntos de conexión mediante un parámetro de entrada. Puede utilizar esta función de Lambda como recurso personalizado en cualquier plantilla de AWS CloudFormation . 

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa.

  • Un perfil de AWS configurado en su entorno local con una clave de acceso y una clave secreta. También puede ejecutar este código desde AWS Cloud9.

  • Permisos para lo siguiente:

    • Rol y política de AWS Identity and Access Management (IAM)

    • Función de AWS Lambda

    • Amazon Simple Storage Service (Amazon S3) para cargar la función de Lambda.

    • Tema y política de Amazon SNS

    • Pilas CloudFormation de AWS

Limitaciones

  • El código es compatible con estaciones de trabajo Linux y macOS.

Versiones de producto

  • Interfaz de la línea de comandos de AWS (AWS CLI) versión 2 o posterior.

Arquitectura

Pila de tecnología de destino

  • AWS CloudFormation

  • Amazon SNS

  • AWS Lambda

Herramientas

Herramientas

Código

El adjunto incluye los siguientes archivos:

  • Función de Lambda: lambda_function.py

  • CloudFormation Plantilla de AWS: template.yaml

  • Dos archivos de parámetros para gestionar las suscripciones de puntos de conexión de correo electrónico múltiples o únicas: parameters-multiple-values.json (se utilizan de forma predeterminada) y parameters-one-value.json

Para implementar la pila, puede usar cualquiera de los dos archivos de parámetros. Para especificar varios puntos de conexión de correo electrónico: 

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION>

Para especificar un único punto de conexión de correo electrónico:

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION> -f parameters-one-value.json

Epics

TareaDescripciónHabilidades requeridas

Configure el punto de conexión de correo electrónico para las suscripciones a temas de SNS.

Edite el archivo parameters-one-value.json (adjunto) y cambie el valor del parámetro pSNSNotificationsEmail para que refleje la dirección de correo electrónico que desea usar, por ejemplo someone@example.com.

Implemente la CloudFormation pila de AWS que crea los recursos y la suscripción.

Ejecute el comando deploy.sh con el nombre de su perfil de AWS, la región de AWS y el archivo parameters-one-value.json.

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION> -f parameters-one-value.json
Rol de IAM con permisos adecuados
TareaDescripciónHabilidades requeridas

Configure los puntos de conexión de correo electrónico para las suscripciones a temas de SNS.

Edite el archivo parameters-multiple-values.json (adjunto), y cambie el valor del parámetro pSNSNotificationsEmail para reflejar las direcciones de correo electrónico que desea utilizar, separadas por comas, de la siguiente manera: someone1@example.com, someone2@example.com.

Implemente la CloudFormation pila de AWS que crea los recursos y la suscripción.

Ejecute el comando deploy.sh con su nombre de perfil de AWS y su región de AWS. No es necesario que especifique el archivo parameters-multiple-values.json porque se usa de forma predeterminada.

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION>
Rol de IAM con permisos adecuados
TareaDescripciónHabilidades requeridas

Cree un tema de SNS.

Cree un tema de SNS a través de una CloudFormation plantilla de AWS, sin especificar los puntos de enlace de la suscripción en el objeto de AWS::SNS::Topic plantilla. Puede utilizar template.yaml en el adjunto como punto de partida.

Rol de IAM con permisos adecuados

Crear política de tema de SNS.

Cree una política temática de SNS en la CloudFormation plantilla de AWS.

Rol de IAM con permisos adecuados

Suscriba la lista de puntos de conexión de correo electrónico al tema de SNS.

Según la lista de puntos de conexión de correo electrónico (uno o más), suscriba los puntos de conexión al tema de SNS que creó.

Rol de IAM con permisos adecuados

Recursos relacionados

Referencias

Herramientas necesarias

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip