Fanout a AWS Event Fork Pipelines - 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.

Fanout a AWS Event Fork Pipelines

Para el archivado y el análisis de eventos, Amazon recomienda SNS ahora utilizar su integración nativa con Amazon Data Firehose. Puede suscribir las transmisiones de entrega de Firehose a SNS los temas, lo que le permite enviar notificaciones a puntos de enlace de archivado y análisis, como los depósitos de Amazon Simple Storage Service (Amazon S3), las tablas de Amazon Redshift, OpenSearch Amazon Service (Service) y más. OpenSearch El uso de Amazon SNS con Firehose Delivery Streams 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.

Puedes usar Amazon SNS para crear aplicaciones basadas en eventos que utilicen los servicios de suscriptor para realizar trabajos automáticamente en respuesta a los eventos activados por los servicios del editor. 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 tus aplicaciones basadas en eventos, puedes suscribir canales de gestión de eventos (impulsados por Event Fork Pipelines) a los temas de Amazon. AWS SNS AWS Event Fork Pipelines es un conjunto de aplicaciones anidadas de código abierto, basadas en el modelo de aplicaciones AWS sin servidor (AWS SAM), que puedes implementar directamente desde el paquete AWS Event Fork Pipelines (selecciona Mostrar aplicaciones que crean roles personalizados o políticas de recursos) en tu cuenta. IAM AWS

Para ver un AWS caso de uso de Event Fork Pipelines, consulte. Implementación y prueba de la aplicación de ejemplo AWS Event Fork Pipelines

Cómo funciona AWS Event Fork Pipelines

AWS Event Fork Pipelines es un patrón de diseño sin servidor. Sin embargo, también es un conjunto de aplicaciones anidadas sin servidor basadas en AWS SAM (que puede implementar directamente desde AWS Serverless Application Repository (AWS SAR) a su servidor para enriquecer sus Cuenta de AWS plataformas basadas en eventos). Puede implementar estas aplicaciones anidadas de forma individual, según lo requiera su arquitectura.

El siguiente diagrama muestra una aplicación AWS Event Fork Pipelines complementada con tres aplicaciones anidadas. Puede implementar cualquiera de las canalizaciones de la suite AWS Event Fork Pipelines de AWS SAR forma independiente, según lo requiera su arquitectura.

Event processing architecture with Amazon SNS topic feeding into multiple pipelines.

Cada canal está suscrito al mismo SNS tema de Amazon, lo que permite procesar eventos en paralelo a medida que estos eventos 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 colocas las tres canalizaciones de AWS Event Fork junto con las canalizaciones de procesamiento de eventos habituales (es posible que ya estés suscrito a tu SNS tema de Amazon), no necesitas cambiar ninguna parte de tu editor de mensajes actual para aprovechar las canalizaciones de AWS Event Fork en tus cargas de trabajo actuales.

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. Puedes suscribir esta canalización a tu SNS tema de Amazon para realizar automáticamente una copia de seguridad de los eventos que circulan por tu sistema.

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

AWS event storage backup pipeline with SNS, SQS, Lambda, Kinesis, S3, and Athena components.

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 cargan los eventos, puede utilizar Amazon Athena para consultar el bucket mediante consultas estándarSQL. 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. Puedes suscribir esta canalización a tu SNS tema de Amazon para indexar los eventos que fluyen por tu sistema en un dominio de búsqueda y, a continuación, ejecutar análisis sobre ellos.

Esta canalización se compone de una SQS cola de Amazon que almacena en búfer los eventos publicados por el SNS tema de Amazon, 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 dominio de OpenSearch Amazon Service que indexa los eventos cargados por la transmisión de Firehose y un depósito de Amazon S3 que almacena los eventos en letra muerta que no se pueden indexar en el dominio de búsqueda.

Event search analytics pipeline with Servicios de AWS for data processing and storage.

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 tu sistema ha procesado durante los últimos 14 días (por ejemplo, cuando tu plataforma necesita recuperarse de un error), puedes suscribir esta canalización a tu SNS tema de Amazon y, a continuación, volver a procesar los eventos.

Esta canalización se compone de una SQS cola de Amazon que almacena en búfer los eventos publicados por el SNS tema de Amazon y una AWS Lambda función que sondea los eventos de la cola y los redirige a tu canalización de procesamiento de eventos normal, que también está suscrita a tu tema.

Event processing pipeline with Amazon SNS, SQS queues, and AWS Lambda for replay functionality.
nota

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

Implementación de Event Fork Pipelines AWS

La suite AWS Event Fork Pipelines (elija Mostrar aplicaciones que creen IAM funciones o políticas de recursos personalizadas) está disponible como un grupo de aplicaciones públicas en el AWS Serverless Application Repository, desde donde puede implementarlas y probarlas manualmente mediante la AWS Lambda consola. Para obtener información sobre cómo implementar canalizaciones mediante la AWS Lambda consola, consulte. Suscribir un AWS Event Fork Pipelines a un tema de Amazon SNS

En un escenario de producción, recomendamos incrustar AWS Event Fork Pipelines en la plantilla general de la aplicación. AWS SAM La función de aplicación anidada le permite hacerlo añadiendo el recurso AWS::Serverless::Application a la AWS SAM plantilla, haciendo referencia a la aplicación anidada AWS SAR ApplicationId y a ella. SemanticVersion

Por ejemplo, puede usar Event Storage and Backup Pipeline como una aplicación anidada añadiendo el siguiente YAML fragmento a la Resources sección de la plantilla. 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 los parámetros, puede utilizar funciones AWS CloudFormation intrínsecas para hacer referencia a otros recursos de la plantilla. Por ejemplo, en el YAML fragmento anterior, el TopicArn parámetro hace referencia al AWS::SNS::Topic recursoMySNSTopic, definido en otra parte de la AWS SAM plantilla. Para obtener más información, consulte la Referencia de función intrínseca en la Guía del usuario de AWS CloudFormation .

nota

La página de la AWS Lambda consola de la AWS SAR aplicación incluye el botón Copiar como SAM recurso, que copia en el YAML portapapeles lo necesario para anidar una AWS SAR aplicación.