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.
AWSEncadene los servicios mediante un enfoque sin servidor
Creado por Aniket Braganza () AWS
Entorno: producción | Tecnologías: sin servidor;;;; Modernización CloudNative DevelopmentAndTesting; Infraestructura DevOps | AWSservicios: Amazon S3; AmazonSNS; AmazonSQS; AWS Lambda |
Resumen
Este patrón demuestra un enfoque escalable y sin servidor para procesar un archivo cargado al encadenar Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (AmazonSNS), Amazon Simple Queue Service (AmazonSQS) y Lambda. AWS El ejemplo del archivo cargado es para fines ilustrativos. Puede utilizar un enfoque sin servidor para completar otras tareas, uniendo la combinación de AWS servicios necesaria para cumplir sus objetivos empresariales. El enfoque sin servidor emplea un flujo de trabajo asíncrono que se basa en notificaciones basadas en eventos, un almacenamiento flexible y la informática de Función como servicio (FaaS) para procesar las solicitudes. Puede utilizar el enfoque sin servidor para escalar y satisfacer la demanda y, al mismo tiempo, minimizar los costos.
Nota: Existen varias opciones para encadenar los AWS servicios mediante un enfoque sin servidor. Por ejemplo, puede utilizar un enfoque que combine Lambda con Amazon S3 en lugar de Amazon y SNS Amazon. SQS Sin embargo, este patrón utiliza Amazon SNS y Amazon SQS porque este enfoque permite añadir varios puntos de integración al proceso de invocación de Lambda durante una notificación de evento y ampliar la implementación para incluir varios oyentes en una organización sin servidor y, al mismo tiempo, minimizar la sobrecarga de procesamiento.
Requisitos previos y limitaciones
Requisitos previos
Una cuenta activa AWS
Acceso programático a la AWS cuenta. Para obtener más información, consulte:
Requisitos previos de la documentación del AWS Cloud Development Kit (AWSCDK)
Requisitos previos de la documentación sobre la interfaz de línea de AWS comandos () AWS CLI
AWSCDK, instalado
AWSCLI, instalado y configurado
Versiones de producto
AWSCDK2.x
Python 3.9
Arquitectura
El siguiente diagrama ilustra cómo los AWS servicios encadenados pueden permitir a un usuario cargar un archivo en un bucket de S3 para su procesamiento.
En el diagrama, se muestra el siguiente flujo de trabajo:
Un usuario sube un archivo al bucket de S3.
La carga inicia un evento de S3 que publica un mensaje en un tema. SNS El mensaje contiene los detalles del evento de S3.
El mensaje publicado en el SNS tema se inserta en una SQS cola, a la que se suscribe y recibe notificaciones sobre ese tema.
Una función Lambda sondea la SQS cola (como fuente de eventos) y espera a que se procesen los mensajes.
Cuando la función Lambda recibe mensajes de la SQS cola, los procesa y confirma la recepción de esos mensajes.
Pila de tecnología
Amazon S3
Amazon SNS
Amazon SQS
AWSLambda
Herramientas
AWSservicios
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Amazon Simple Notification Service (AmazonSNS) le ayuda a coordinar y gestionar el intercambio de mensajes entre editores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Queue Service (AmazonSQS) proporciona una cola alojada segura, duradera y disponible que le ayuda a integrar y desacoplar sistemas y componentes de software distribuidos.
AWSLambda es un servicio informático que le ayuda a ejecutar código sin necesidad de aprovisionar o administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Otras herramientas
AWSCloud Development Kit (AWSCDK) es la herramienta principal para interactuar con tu AWS CDK aplicación. Ejecuta tu aplicación, examina el modelo de aplicación que has definido y produce e implementa las AWS CloudFormation plantillas generadas por. AWS CDK
AWSLa interfaz de línea de comandos (AWSCLI) es una herramienta de código abierto que te ayuda a interactuar con los AWS servicios mediante comandos en el shell de línea de comandos.
Python
es un lenguaje de programación de uso general interpretado de alto nivel.
Código
El código de este patrón está disponible en el repositorio GitHub Chaining S3 to to SNS SQS to Lambda
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clonar el repositorio. | Clone el repositorio | Desarrollador de aplicaciones |
Configurar un entorno virtual. |
| Desarrollador de aplicaciones |
Instale las dependencias. | Ejecute el comando | Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Realice pruebas unitarias. |
| Desarrollador, ingeniero de pruebas |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure el entorno de arranque. | Siga las instrucciones de Bootstrapping de la AWS documentación para iniciar el entorno para su AWS CDK despliegue en cada AWS región en la que se vaya a implementar la CloudFormation pila. Nota: Este paso requiere que disponga de credenciales con acceso programático. | Desarrollador de aplicaciones, DevOps ingeniero e ingeniero de datos |
Implemente la CloudFormation pila. | Ejecuta el | Desarrollador de aplicaciones, DevOps ingeniero, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Elimine la CloudFormation pila y elimine los recursos asociados. | Para eliminar la CloudFormation pila que se creó y eliminar todos los recursos asociados, ejecute el comando | Desarrollador de aplicaciones |