Fanout de los SNS eventos de Amazon 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 de los SNS eventos de Amazon 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 Amazon SNS 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.

La arquitectura AWS Event Fork Pipelines, que muestra cómo se filtran y procesan los eventos de un SNS tema de Amazon a través de tres canalizaciones distintas: Event Storage and Backup, Event Search and Analytics y Event Replay. Estas canalizaciones se representan como cajas apiladas verticalmente, cada una de las cuales procesa de forma independiente eventos en paralelo desde el mismo tema de AmazonSNS.

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.

El Fork-Event-Storage-Backup -Pipeline, que está diseñado para procesar y realizar copias de seguridad de eventos de un SNS tema de Amazon. El flujo comienza con un SNS tema de Amazon a partir del cual los eventos se distribuyen en una SQS cola de Amazon. A continuación, una función Lambda procesa estos eventos filtrados y los reenvía a una Amazon Kinesis Data Firehose. La transmisión Firehose se encarga de almacenar en búfer, transformar y comprimir los eventos antes de cargarlos en un bucket de backup de Amazon S3. Por último, Amazon Athena se puede utilizar para consultar los datos almacenados. El diagrama utiliza una serie de iconos y flechas para ilustrar el flujo de un servicio al siguiente, etiquetando claramente cada componente de la canalizació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 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.

La canalización de búsqueda y análisis de eventos dentro de una arquitectura. AWS Comienza a la izquierda con el SNS tema de Amazon que recibe todos los eventos. Luego, estos eventos se canalizan a través de una línea discontinua que representa «eventos filtrados en abanico» hacia una cola de Amazon. SQS Desde la cola, los eventos son procesados por una función de Lambda que, a continuación, los reenvía a una transmisión de Amazon Kinesis Data Firehose. Data Firehose dirige los eventos a dos destinos: una ruta lleva a un Amazon Elasticsearch Service para su indexación y la otra envía los eventos no procesables o de «letra muerta» a un depósito de Amazon S3. En el extremo derecho, el resultado de Elasticsearch Service se envía a un panel de Kibana para su análisis y visualización. Todo el flujo se presenta horizontalmente y cada componente está conectado por líneas que muestran la dirección del flujo de datos.

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 el tuyo 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.

El proceso de reproducción de eventos en formato de diagrama de flujo. De izquierda a derecha, comienza con un SNS tema de Amazon que distribuye los eventos filtrados a dos procesos paralelos. El flujo superior representa tu proceso normal de procesamiento de eventos, que incluye una SQS cola de Amazon que procesa los eventos. El flujo inferior, denominado «»fork-event-replay-pipeline, incluye una cola de SQS reproducción de Amazon en la que los eventos se almacenan temporalmente antes de ser procesados por una función de reproducción de Lambda. Esta función Lambda tiene la capacidad de redirigir los eventos a su proceso de procesamiento de eventos normal o retenerlos para su reproducción, en función de si la función de reproducción está habilitada o deshabilitada. El diagrama también indica que los operadores pueden activar o desactivar la función de reproducción de eventos.
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. Suscripción de 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.