Distribución ramificada a las canalizaciones de bifurcación de eventos de AWS - Amazon Simple Notification Service

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.

Distribución ramificada a las canalizaciones de bifurcación de eventos de AWS

Para el archivado y el análisis de eventos, Amazon SNS ahora recomienda utilizar su integración nativa con Amazon Data Firehose. Puede suscribir las transmisiones de entrega de Firehose a temas de SNS, lo que le permite enviar notificaciones a puntos de enlace de archivado y análisis, como depósitos de Amazon Simple Storage Service (Amazon S3), tablas de Amazon Redshift, Amazon Service (Service) y más. OpenSearch OpenSearch El uso de Amazon SNS con las transmisiones de entrega de Firehose es una solución totalmente gestionada y sin código que no requiere el uso de funciones. AWS Lambda Para obtener más información, consulte Transmisiones de entrega de Fanout a Firehose.

Puede usar Amazon SNS para crear aplicaciones basadas en eventos que utilicen los servicios de suscriptor para realizar trabajos de manera automática en respuesta a eventos desencadenados por los servicios de publicador. Este patrón arquitectónico puede hacer que los servicios sean más reutilizables, interoperables y escalables. Sin embargo, puede ser muy laborioso bifurcar el procesamiento de eventos a canalizaciones que cumplan los requisitos comunes de administración de eventos, como el almacenamiento de eventos, la copia de seguridad, la búsqueda, el análisis y la repetición.

Para acelerar el desarrollo de sus aplicaciones basadas en eventos, puede suscribirse a canalizaciones de gestión de eventos, basadas en canalizaciones de bifurcación de eventos de AWS, a temas de Amazon SNS. AWS Event Fork Pipelines es un conjunto de aplicaciones anidadas de código abierto basadas en el modelo AWS Serverless Application Model (AWS SAM) que se puede implementar directamente desde el conjunto de aplicaciones de AWS Event Fork Pipelines (elija Show apps that create custom IAM roles or resource policies [Mostrar aplicaciones que crean roles de IAM o políticas de recursos personalizados]) en la cuenta de AWS.

Para un caso de uso de canalizaciones de bifurcación de eventos de AWS, consulte Implementación y prueba de la aplicación de muestra de las canalizaciones de bifurcación de eventos de AWS.

Cómo funcionan las canalizaciones de bifurcación de eventos de AWS

Las canalizaciones de bifurcación de eventos de AWS son un patrón de diseño sin servidor. Sin embargo, también son una suite de aplicaciones sin servidor anidadas basadas en SAM de AWS (que puede implementar de forma directa desde AWS Serverless Application Repository [SAR de AWS] en su Cuenta de AWS para enriquecer sus plataformas basadas en eventos). Puede implementar estas aplicaciones anidadas de forma individual, según lo requiera su arquitectura.

En el siguiente diagrama, se muestra una aplicación de canalizaciones de bifurcación de eventos de AWS complementada por tres aplicaciones anidadas. Puede implementar cualquiera de las canalizaciones desde la suite de canalizaciones de bifurcación de eventos de AWS en el SAR de AWS de forma independiente, según los requisitos de su arquitectura.

Cada canalización se suscribe al mismo tema de Amazon SNS, lo que le permite procesar eventos en paralelo a medida que se publican en el tema. Cada canalización es independiente y puede establecer su propia política de filtros de suscripción. De este modo una canalización puede procesar solo un subconjunto de los eventos que le interesan (en lugar de todos los eventos publicados en el tema).

nota

Como las tres AWS se colocan junto con las canalizaciones de bifurcación de eventos normales (y es posible que ya estén suscritas al tema de Amazon SNS), no es necesario cambiar nada del publicador de mensajes actual para utilizar las canalizaciones de bifurcación de eventos de AWS en las cargas de trabajo existentes.

Canalización de almacenamiento y copia de seguridad de eventos

En el siguiente diagrama se muestra la canalización de almacenamiento y copia de seguridad de eventos. Puede suscribir esta canalización a su tema de Amazon SNS para hacer una copia de seguridad automática de los eventos que fluyen por su sistema.

Esta canalización se compone de una cola de Amazon SQS que almacena en búfer los eventos publicados por el tema de Amazon SNS, una AWS Lambda función que sondea automáticamente estos eventos de la cola y los envía a una transmisión de Amazon Data Firehose y un depósito de Amazon S3 que realiza copias de seguridad duraderas de los eventos cargados por la transmisión.

Para optimizar el comportamiento del flujo de Firehose, puede configurarlo para que almacene en búfer, transforme y comprima los eventos antes de cargarlos en el bucket. A medida que se carguen los eventos, puede utilizar Amazon Athena para consultar el bucket mediante consultas SQL estándar. También puede configurar la canalización para reutilizar un bucket de Amazon S3 existente o crear uno nuevo.

Canalización de búsqueda y análisis de eventos

En el siguiente diagrama se muestra la canalización de búsqueda y análisis de eventos. Puede suscribir esta canalización a su tema de Amazon SNS para indexar los eventos que fluyen a través de su sistema en un dominio de búsqueda y, a continuación, ejecutar análisis en ellos.

Esta canalización se compone de una cola de Amazon SQS que almacena en búfer los eventos publicados por el tema de Amazon SNS, una AWS Lambda función que sondea los eventos de la cola y los envía a una transmisión de Amazon Data Firehose, un OpenSearch dominio de Amazon Service que indexa los eventos cargados por la transmisión de Firehose y un depósito de Amazon S3 que almacena los eventos con letra muerta que no se pueden indexar en el dominio de búsqueda.

Para afinar el flujo de Firehose en términos de almacenamiento en búfer, transformación y compresión de eventos, puede configurar esta canalización.

También puedes configurar si la canalización debe reutilizar un OpenSearch dominio existente en tu dominio Cuenta de AWS o crear uno nuevo para ti. A medida que los eventos se indexan en el dominio de búsqueda, puede utilizar Kibana para ejecutar análisis de sus eventos y actualizar los paneles visuales en tiempo real.

Canalización de reproducción de eventos

En el siguiente diagrama se muestra la canalización de reproducción de eventos. Para registrar los eventos que ha procesado el sistema en los últimos 14 días (por ejemplo, cuando su plataforma necesita recuperarse de un error), puede suscribir esta canalización a su tema de Amazon SNS y, a continuación, reprocesar los eventos.

Esta canalización se compone de una cola de Amazon SQS en la que se almacenan los eventos que entrega el tema de Amazon SNS y una función AWS Lambda con la que se sondean los eventos de la cola y se los redirecciona a su canalización de procesamiento de eventos normales, que también está suscrita a su tema.

nota

De forma predeterminada, la función de reproducción está deshabilitada, por lo que no redirecciona los eventos. Si necesita volver a procesar los eventos, debe habilitar la cola de reproducción de Amazon SQS como fuente de eventos para la función de reproducción de AWS Lambda.

Implementación de canalizaciones de bifurcación de eventos de AWS

La suite de canalizaciones de bifurcación de eventos de AWS (elija Mostrar aplicaciones que crean políticas de recursos o roles de IAM personalizados) está disponible como un grupo de aplicaciones públicas en el AWS Serverless Application Repository, desde donde puede implementarlas y probarlas de forma manual mediante la AWS Lambdaconsola de . Para obtener información sobre la implementación de canalizaciones mediante la consola de AWS Lambda, consulte Suscripción de las canalizaciones de bifurcaciones de eventos de AWS a un tema de Amazon SNS.

En los escenarios de producción, le recomendamos que integre las canalizaciones de bifurcación de eventos de AWS dentro de la plantilla AWS SAM de su aplicación general. La característica de aplicación anidada le permite hacerlo añadiendo el recurso AWS::Serverless::Application a la plantilla de AWS SAM, con una referencia a ApplicationId y la SemanticVersion de AWS SAR de la aplicación anidada.

Por ejemplo, puede utilizar la canalización de almacenamiento y copia de seguridad de eventos como una aplicación anidada si añade el siguiente fragmento YAML a la sección Resources de su plantilla de AWS SAM.

Backup: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline SemanticVersion: 1.0.0 Parameters: #The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket. TopicArn: !Ref MySNSTopic

Al especificar los valores de parámetro, puede utilizar funciones intrínsecas de AWS CloudFormation para hacer referencia a otros recursos de la plantilla. Por ejemplo, en el fragmento YAML anterior, el parámetro TopicArn hace referencia al recurso MySNSTopic de AWS::SNS::Topic, definido en otra parte de la plantilla de AWS SAM. Para obtener más información, consulte la Referencia de función intrínseca en la Guía del usuario de AWS CloudFormation.

nota

En la página de la consola de AWS Lambda de la aplicación de AWS SAR, se encuentra el botón Copiar como recurso de SAM, que copia el código YAML necesario para anidar una aplicación de AWS SAR en el portapapeles.