Agente de mensagens Amazon MQ como uma origem - Amazon EventBridge

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Agente de mensagens Amazon MQ como uma origem

Você pode usar o EventBridge Pipes para receber registros de um agente de mensagens do Amazon MQ. Opcionalmente, é possível filtrar ou aprimorar esses registros antes de enviá-los para um dos destinos disponíveis para processamento. Há configurações específicas para o Amazon MQ que você pode escolher ao configurar um canal. EventBridge O Pipes mantém a ordem dos registros do agente de mensagens ao enviar esses dados para o destino.

O Amazon MQ é um serviço gerenciado de agente de mensagem para o Apache ActiveMQ e o RabbitMQ. Um agente de mensagens habilita aplicações de software e componentes para se comunicarem usando diferentes linguagens de programação, sistemas operacionais e protocolos de mensagens formais com destinos de eventos de tópicos ou filas.

O Amazon MQ também pode gerenciar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em seu nome instalando agentes do ActiveMQ ou RabbitMQ. Depois que um agente é instalado, ele fornece diferentes topologias de rede e outras necessidades de infraestrutura para suas instâncias.

A origem do Amazon MQ tem as seguintes restrições de configuração:

  • Conta cruzada — EventBridge não suporta processamento entre contas. Você não pode usar EventBridge para processar registros de um agente de mensagens do Amazon MQ que esteja em uma conta diferente AWS .

  • Autenticação — Para o ActiveMQ, somente o ActiveMQ é suportado. SimpleAuthenticationPlugin Para RabbitMQ, somente oPLAINMecanismo de autenticação é compatível. Para gerenciar credenciais, use AWS Secrets Manager. Para obter mais informações sobre a autenticação do ActiveMQ, consulte Como integrar agentes do ActiveMQ com o LDAP no Guia do desenvolvedor do Amazon MQ.

  • Cota de conexão: os agentes têm um número máximo de conexões permitidas por cada protocolo de nível de transmissão de dados. Essa cota é baseada no tipo de instância do agente. Para obter mais informações, consulte a seção Agentes do *Cotas no Amazon MQ* no Guia do desenvolvedor do Amazon MQ.

  • Conectividade: é possível criar agentes em uma nuvem privada virtual (VPC) pública ou privada. Para VPCs privadas, seu pipe precisa de acesso à VPC para receber mensagens.

  • Destinos de eventos: somente destinos de fila são compatíveis. No entanto, é possível usar um tópico virtual, que se comporta como um tópico internamente e como uma fila externamente enquanto interage com seus pipes. Para obter mais informações, consulte Destinos virtuais no site do Apache ActiveMQ e Hosts virtuais nio site do the RabbitMQ.

  • Topologia de rede: para o ActiveMQ, somente um agente de instância única ou em espera é aceito por pipe. No RabbitMQ, apenas um agente de instância única ou implantação de cluster é aceito por cada pipe. Os agentes de instância única requerem um endpoint de failover. Para obter mais informações sobre esses modos de implantação do agente, consulte Arquitetura do agente ativo do MQ e Arquitetura do agente de MQ do Rabbit noGuia do desenvolvedor do Amazon MQ.

  • Protocolos: os protocolos compatíveis dependem do tipo de integração do Amazon MQ.

    • Para integrações com o ActiveMQ EventBridge , usa OpenWire o protocolo /Java Message Service (JMS) para consumir mensagens. O consumo de mensagens não é compatível com nenhum outro protocolo. EventBridge suporta somente as BytesMessageoperações TextMessagee dentro do protocolo JMS. Para obter mais informações sobre o OpenWire protocolo, consulte o OpenWiresite do Apache ActiveMQ.

    • Para integrações com o RabbitMQ, EventBridge usa o protocolo AMQP 0-9-1 para consumir mensagens. Nenhum outro protocolo é compatível para o consumo de mensagens. Para obter mais informações sobre a implementação do protocolo AMQP 0-9-1 pelo RabbitMQ, consulteAMQP 0-9-1 Guia de referência completono site do RabbitMQ.

EventBridge suporta automaticamente as versões mais recentes do ActiveMQ e do RabbitMQ suportadas pelo Amazon MQ. Para obter as versões compatíveis mais recentes, consulte Notas de versão do Amazon MQ no Guia do desenvolvedor do Amazon MQ.

nota

Por padrão, o Amazon MQ tem uma janela de manutenção semanal para agentes. Durante essa janela de tempo, os agentes não estão disponíveis. Para corretores sem espera, não EventBridge processará mensagens até que a janela termine.

Eventos de exemplo

O exemplo de evento a seguir mostra as informações recebidas pelo pipe. É possível usar esse evento para criar e filtrar seus padrões de eventos ou para definir a transformação de entrada. Nem todos os campos podem ser filtrados. Para mais informações sobre quais campos podem ser filtrados, consulte Filtragem 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 interagir com o Amazon MQ, EventBridge crie um grupo de consumidores que pode ler seus corretores do Amazon MQ. O grupo de consumidores é criado com o mesmo ID que um UUID de pipes.

Para fontes do Amazon MQ, agrupa registros em EventBridge lotes e os envia para sua função em uma única carga útil. Para controlar o comportamento, é necessário configurar a janela de lotes e o tamanho do lote. EventBridge extrai mensagens até que ocorra uma das seguintes situações:

  • Os registros processados atingem o tamanho máximo da carga útil de 6 MB.

  • A janela de processamento de lotes expira.

  • O número de registros atinge o tamanho total do lote.

EventBridge converte seu lote em uma única carga útil e, em seguida, invoca sua função. As mensagens não são persistentes nem desserializadas. Em vez disso, o grupo de consumidores os recupera como um BLOB de bytes. Em seguida, o base64 os codifica em uma carga útil JSON. Se o pipe retornar um erro para qualquer uma das mensagens em um lote, EventBridge tente novamente o lote inteiro de mensagens até que o processamento seja bem-sucedido ou as mensagens expirem.

Configuração de rede

Por padrão, os agentes do Amazon MQ são criados com o a sinalização PubliclyAccessible definida como falsa. Somente quando PubliclyAccessible é definido como verdadeiro que o agente recebe um endereço IP público. Para ter acesso total ao seu pipe, seu agente deve usar um endpoint público ou fornecer acesso à VPC.

Se seu agente do Amazon MQ não estiver acessível ao público, EventBridge deverá ter acesso aos recursos da Amazon Virtual Private Cloud (Amazon VPC) associados ao seu corretor.

  • Para acessar a VPC de seus corretores do Amazon MQ EventBridge , você pode usar o acesso de saída à Internet para as sub-redes de sua fonte. Para sub-redes públicas, esse deve ser um gateway NAT gerenciado. Para sub-redes privadas, pode ser um gateway NAT ou o seu próprio NAT. Certifique-se de que o NAT tenha um endereço IP público e possa se conectar à Internet.

  • EventBridge O Pipes também suporta a entrega de eventos AWS PrivateLink, permitindo que você envie eventos de uma fonte de eventos localizada em um Amazon Virtual Private Cloud (Amazon VPC) para um destino do Pipes sem atravessar a Internet pública. Você pode usar o Pipes para pesquisar Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogerenciado e Amazon MQ fontes residentes em uma sub-rede privada sem a necessidade de implantar um gateway de internet, configurar regras de firewall ou configurar servidores proxy.

    Para configurar um VPC endpoint, consulte Criar um VPC endpoint no Guia do usuário.AWS PrivateLink Para nome do serviço, selecionecom.amazonaws.region.pipes-data.

Configure os grupos de segurança da Amazon VPC com as seguintes regras (no mínimo):

  • Regras de entrada — Permita todo o tráfego na porta do agente Amazon MQ para os grupos de segurança especificados para sua origem.

  • Regras de saída: permitir todo o tráfego na porta 443 para todos os destinos. Permita todo o tráfego na porta do agente Amazon MQ para os grupos de segurança especificados para sua origem.

    As portas do broker incluem:

    • 9092 para texto sem formatação

    • 9094 para TLS

    • 9096 para SASL

    • 9098 para IAM

nota

Sua configuração da Amazon VPC pode ser detectada pela API do Amazon MQ. Não é necessário defini-la durante a configuração.