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 do Amazon MQ como origem no EventBridge Pipes
É possível 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 podem ser escolhidas ao configurar um pipe. O EventBridge 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
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:
-
Entre contas: o EventBridge não é compatível com o processamento entre contas. Não é possível usar o EventBridge para processar registros de um agente de mensagens do Amazon MQ que esteja em uma conta diferente da AWS.
-
Autenticação: para o ActiveMQ, somente o SimpleAuthenticationPlugin do ActiveMQ
é compatível. Para RabbitMQ, somente oPLAIN Mecanismo 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 do ActiveMQ, o EventBridge consome mensagens usando o protocolo OpenWire/Serviço de Mensagens Java (JMS). O consumo de mensagens não é compatível com nenhum outro protocolo. O EventBridge é compatível somente as operações TextMessage
e BytesMessage dentro do protocolo JMS. Para obter mais informações sobre o protocolo OpenWire, consulte OpenWire no site do Apache ActiveMQ. -
Em integrações RabbitMQ, o 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 completo
no site do RabbitMQ.
-
O EventBridge é automaticamente compatível com as versões mais recentes do ActiveMQ e RabbitMQ que não são compatíveis com o 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 agentes sem espera, o EventBridge não processará mensagens até que a janela seja encerrada.
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 de eventos no 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.govskope.ca-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.govskope.ca-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, o EventBridge cria um grupo de consumidores que pode ler de seus agentes do Amazon MQ. O grupo de consumidores é criado com o mesmo ID que um UUID de pipes.
Para origens do Amazon MQ, o EventBridge divide os registros em 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. O EventBridge extrai mensagens até que uma das seguintes condições ocorra:
-
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.
O EventBridge converte seu lote em uma única carga útil e 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 seu pipe retorna um erro para qualquer uma das mensagens em um lote, o EventBridge tenta enviar novamente todo o lote de mensagens até que o processamento tenha êxito 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 o seu agente do Amazon MQ não estiver acessível ao público, o EventBridge deve ter acesso aos recursos da Amazon Virtual Private Cloud (Amazon VPC) associados ao seu agente.
Para acessar a VPC de seus agentes do Amazon MQ, o EventBridge pode usar o acesso de saída à internet para as sub-redes de sua origem. 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.
O EventBridge Pipes também aceita a entrega de eventos por meio do AWS PrivateLink
, permitindo que você envie eventos de uma origem de eventos localizada em uma Amazon Virtual Private Cloud (Amazon VPC) a um destino do Pipes sem atravessar a internet pública. Você pode usar o Pipes para sondar de origens do Amazon Managed Streaming for Apache Kafka (Amazon MSK), do Apache Kafka autogerenciado e do Amazon MQ residentes em uma sub-rede privada sem a necessidade de implantar um gateway da internet, configurar regras de firewall ou configurar servidores proxy. Para configurar um endpoint da VPC, consulte Create a VPC endpoint no Guia do usuário do AWS PrivateLink. Para o nome do serviço, selecione
com.amazonaws..region.pipes-data
Configure os grupos de segurança da Amazon VPC com as seguintes regras (no mínimo):
-
Regras de entrada: permitir todo tráfego na porta do agente do 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 tráfego na porta do agente do Amazon MQ para os grupos de segurança especificados para sua origem.
As portas do agente incluem:
9092 para texto simples
9094 para TLS
9096 para SASL
9098 para o 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.