Agente de mensajes Amazon MQ como origen - 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.

Agente de mensajes Amazon MQ como origen

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 administrar instancias de Amazon Elastic Compute Cloud (Amazon EC2) en su nombre instalando agentes de 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 acerca de la autenticación de ActiveMQ, consulte Integración de agentes de ActiveMQ con 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 agentes en una nube privada virtual (VPC) pública o privada. En el caso de las VPC privadas, su canalización necesita acceso a la 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.

    • Para las integraciones de ActiveMQ EventBridge , utiliza OpenWire el protocolo /Java Message Service (JMS) para consumir los mensajes. El consumo de mensajes no es compatible con ningún otro protocolo. EventBridge solo admite las BytesMessageoperaciones TextMessagey dentro del protocolo JMS. Para obtener más información sobre el OpenWire protocolo, consulte el OpenWiresitio web de Apache ActiveMQ.

    • Para las integraciones de RabbitMQ, EventBridge utiliza el protocolo AMQP 0-9-1 para consumir los mensajes. No se admiten otros protocolos para consumir mensajes. Para obtener más información acerca de la implementación de RabbitMQ del protocolo AMQP 0-9-1, consulte la Guía de referencia completa de AMQP 0-9-1 en el sitio web de RabbitMQ.

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 EventBridge de Amazon 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 el UUID de la canalización.

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 como un BLOB de bytes. A continuación, los codifica con base64 en una carga 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 completo con su canalización, el agente debe utilizar un punto de conexión público o proporcionar acceso a la 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 (Amazon VPC) asociados a su agente.

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

  • EventBridge Pipes también admite la entrega directa de eventos AWS PrivateLink, lo que le 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 atravesar 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 punto de enlace de VPC, consulte Crear un punto de enlace de VPC en la Guía del usuario.AWS PrivateLink Para el nombre del servicio, seleccione. com.amazonaws.region.pipes-data

Configure sus grupos de seguridad de Amazon VPC 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

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