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) yparameters-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
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure el punto de conexión de correo electrónico para las suscripciones a temas de SNS. | Edite el archivo | |
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
| Rol de IAM con permisos adecuados |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure los puntos de conexión de correo electrónico para las suscripciones a temas de SNS. | Edite el archivo | |
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
| Rol de IAM con permisos adecuados |
Tarea | Descripción | Habilidades 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 | 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
Recursos CloudFormation personalizados de AWS (documentación de AWS)
Creación de recursos CloudFormation personalizados de AWS con Python, AWS Lambda y crhelper
(entrada del blog)
Herramientas necesarias
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip