El agente de mensajes Amazon MQ como fuente en Pipes EventBridge - Amazon EventBridge

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.

El agente de mensajes Amazon MQ como fuente en Pipes EventBridge

Puedes usar EventBridge Pipes para recibir registros de un agente de mensajes de Amazon MQ. A continuación, si lo desea, puede filtrar o enriquecer estos registros antes de enviarlos a uno de los destinos disponibles para su procesamiento. Existen ajustes específicos de Amazon MQ que puedes elegir al configurar una tubería. EventBridge Pipes mantiene el orden de los registros del agente de mensajes al enviar esos datos al destino.

Amazon MQ es un servicio de agente de mensajes administrado para Apache ActiveMQ y RabbitMQ. Un agente de mensajes permite que las aplicaciones de software y los componentes se comuniquen mediante diferentes lenguajes de programación, sistemas operativos y protocolos de mensajería formales con temas o colas como destinos de eventos.

Amazon MQ también puede gestionar las instancias de Amazon Elastic Compute Cloud EC2 (Amazon) en su nombre mediante la instalación de agentes ActiveMQ o RabbitMQ. Una vez instalado el agente, este proporciona diferentes topologías de red y cubre otras necesidades de infraestructura para sus instancias.

El origen de Amazon MQ tiene las siguientes restricciones de configuración:

  • Cuenta cruzada: EventBridge no admite el procesamiento entre cuentas. No puedes usar EventBridge para procesar registros de un agente de mensajes de Amazon MQ que esté en una cuenta diferente AWS .

  • Autenticación: para ActiveMQ, solo se admite SimpleAuthenticationPluginActiveMQ. Para RabbitMQ, solo se admite el mecanismo de autenticación. PLAIN Para administrar las credenciales, utilice AWS Secrets Manager. Para obtener más información sobre la autenticación ActiveMQ, consulte Integración de los agentes de ActiveMQ LDAP en la Guía para desarrolladores de Amazon MQ.

  • Cuota de conexión: los agentes tienen un número máximo de conexiones permitidas por protocolo de nivel de cable. Esta cuota se basa en el tipo de instancia del broker. Para obtener más información, consulte la sección Agentes de *Cuotas en Amazon MQ* en la Guía para desarrolladores de Amazon MQ.

  • Conectividad: puede crear corredores en una nube privada virtual pública o privada (). VPC Si es privadaVPCs, su canal necesita acceder a él VPC para recibir mensajes.

  • Destinos de eventos: solo se admiten los destinos de cola. Sin embargo, puede utilizar un tema virtual, que se comporta como un tema internamente y como una cola externamente cuando interactúa con sus canalizaciones. Para obtener más información, consulte Destinos virtuales en el sitio web de Apache ActiveMQ y Virtual Hosts en el sitio web RabbitMQ.

  • Topología de red: para ActiveMQ, solo se admite una instancia única o agente en espera por canalización. Para RabbitMQ, solo se admite una implementación de agente o clúster de una instancia única por cada canalización. Los agentes de instancia única requieren un punto de conexión de conmutación por error. Para obtener más información acerca de estos modos de implementación de agente, consulte Arquitectura de agente Active MQ y Arquitectura de agente de Rabbit MQ en la Guía para desarrolladores de Amazon MQ.

  • Protocolos: los protocolos compatibles dependen de la integración de Amazon MQ que utilice.

EventBridge admite automáticamente las versiones más recientes de ActiveMQ y RabbitMQ compatibles con Amazon MQ. Para obtener las últimas versiones compatibles, consulte Notas de la versión de Amazon MQ en la Guía para desarrolladores de Amazon MQ.

nota

De forma predeterminada, Amazon MQ tiene una ventana de mantenimiento semanal para los agentes. Durante esa ventana de tiempo, los corredores no están disponibles. En el caso de los corredores que no estén en modo de espera, EventBridge no procesarán los mensajes hasta que finalice el período.

Eventos de ejemplo

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte Filtrado de eventos en Amazon EventBridge Pipes.

ActiveMQ

[ { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/text-message", "data": "QUJDOkFBQUE=", "connectionId": "myJMSCoID", "redelivered": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 }, { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/bytes-message", "data": "3DTOOW7crj51prgVLQaGQ82S48k=", "connectionId": "myJMSCoID1", "persistent": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 } ]

RabbitMQ

[ { "eventSource": "aws:rmq", "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", "eventSourceKey": "pizzaQueue::/", "basicProperties": { "contentType": "text/plain", "contentEncoding": null, "headers": { "header1": { "bytes": [ 118, 97, 108, 117, 101, 49 ] }, "header2": { "bytes": [ 118, 97, 108, 117, 101, 50 ] }, "numberInHeader": 10 }, "deliveryMode": 1, "priority": 34, "correlationId": null, "replyTo": null, "expiration": "60000", "messageId": null, "timestamp": "Jan 1, 1970, 12:33:41 AM", "type": null, "userId": "AIDACKCEVSQ6C2EXAMPLE", "appId": null, "clusterId": null, "bodySize": 80 }, "redelivered": false, "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" } ]

Grupo de consumidores

Para interactuar con Amazon MQ, EventBridge crea un grupo de consumidores que pueda leer información de tus agentes de Amazon MQ. El grupo de consumidores se crea con el mismo ID que la tubería. UUID

En el caso de las fuentes de Amazon MQ EventBridge , agrupa los registros y los envía a su función en una sola carga útil. Para controlar el comportamiento, puede configurar el plazo de procesamiento por lotes y el tamaño del lote. EventBridge extrae los mensajes hasta que ocurre una de las siguientes situaciones:

  • Los registros procesados alcanzan un tamaño máximo de carga de 6 MB.

  • El plazo de procesamiento por lotes caduca.

  • El número de registros alcanza el tamaño total del lote.

EventBridge convierte el lote en una sola carga útil y, a continuación, invoca la función. Los mensajes no se mantienen ni se deserializan. En su lugar, el grupo de consumidores los recupera en forma de bytes. BLOB Luego los codifica en base64 en una carga útil. JSON Si la canalización devuelve un error en alguno de los mensajes de un lote, EventBridge vuelve a intentarlo con todo el lote de mensajes hasta que el procesamiento se realice correctamente o los mensajes caduquen.

Configuración de red

De forma predeterminada, los agentes de Amazon MQ se crean con el indicador PubliclyAccessible establecido en falso. Solo cuando PubliclyAccessible se establece en verdadero que el agente recibe una dirección IP pública. Para tener acceso total a su canal, su agente debe utilizar un terminal público o proporcionar acceso al. VPC

Si su agente de Amazon MQ no es de acceso público, EventBridge debe tener acceso a los recursos de Amazon Virtual Private Cloud VPC (Amazon) asociados a su agente.

  • Para acceder a sus corredores VPC de Amazon MQ, EventBridge puede utilizar el acceso saliente a Internet para las subredes de su fuente. En el caso de las subredes públicas, debe ser una puerta de enlace gestionada. NAT En el caso de las subredes privadas, puede ser una NAT puerta de enlace o la suya propia. NAT Asegúrese de que NAT tiene una dirección IP pública y de que puede conectarse a Internet.

  • EventBridge Pipes también es compatible con la distribución directa de eventos AWS PrivateLink, lo que te permite enviar eventos desde una fuente de eventos ubicada en un Amazon Virtual Private Cloud (Amazon VPC) a un destino de Pipes sin tener que pasar por la red pública de Internet. Puedes usar Pipes para sondear desde Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogestionado y Amazon MQ fuentes que residen en una subred privada sin necesidad de implementar una puerta de enlace a Internet, configurar reglas de firewall o configurar servidores proxy.

    Para configurar un VPC punto final, consulte Crear un VPC punto final en la Guía del AWS PrivateLink usuario. Para el nombre del servicio, seleccionecom.amazonaws.region.pipes-data.

Configura tus grupos VPC de seguridad de Amazon con las siguientes reglas (como mínimo):

  • Reglas de entrada: permita todo el tráfico en el puerto de agente de Amazon MQ para los grupos de seguridad especificados para su fuente.

  • Reglas de salida: permiten todo el tráfico en el puerto 443 para todos los destinos. Permita todo el tráfico en el puerto de agente de Amazon MQ para los grupos de seguridad especificados para su fuente.

    Los puertos de bróker incluyen:

    • 9092 para texto sin formato

    • 9094 para TLS

    • 9096 para SASL

    • 9098 para IAM

nota

Tu VPC configuración de Amazon se puede encontrar a través de Amazon API MQ. No tiene que configurarla durante la configuración.