O EventBridge consulta mensagens em um tópico do ApsaraMQ for RocketMQ, converte-as em CloudEvents e as entrega a um barramento de eventos personalizado para roteamento baseado em regras. Após a configuração, você pode analisar eventos, visualizar rastreamentos e encaminhar dados para destinos downstream.
Limites
Cada fonte de evento exige um grupo de consumidores dedicado. Não reutilize grupos de consumidores que já atendam cargas de trabalho em produção. Atribua um ID de grupo exclusivo a cada fonte de evento.
Instâncias RocketMQ 4.x e RocketMQ 5.x são suportadas. Selecione a versão correspondente à sua instância.
Pré-requisitos
Antes de começar, verifique se você possui:
-
ApsaraMQ for RocketMQ
Serviço ApsaraMQ for RocketMQ ativado e permissões necessárias concedidas a um usuário do Resource Access Management (RAM). Para mais informações, consulte Ativar e conceder permissões no ApsaraMQ for RocketMQ
Instância do ApsaraMQ for RocketMQ com pelo menos um tópico e um grupo de consumidores. Para mais informações, consulte Criar recursos
-
EventBridge
Serviço EventBridge ativado e permissões necessárias concedidas a um usuário RAM. Para mais informações, consulte Ativar o EventBridge e conceder permissões a um usuário RAM
Barramento de eventos personalizado. Para mais informações, consulte Criar um barramento de eventos personalizado
Adicionar uma fonte de evento do RocketMQ
Faça login no console do EventBridge.
No painel de navegação à esquerda, clique em Event Buses.
Na barra de navegação superior, selecione uma região.
Na página Event Buses, clique em Event Buses no nome do barramento de eventos desejado.
No painel de navegação à esquerda, clique em Event Sources.
Clique em Add Event Source.
-
No painel Add Custom Event Source, configure os parâmetros abaixo e clique em OK.
Parâmetro
Obrigatório
Descrição
Name
Sim
Insira um nome para a fonte de evento.
Description
Sim
Insira uma descrição.
Event Provider
Sim
Selecione ApsaraMQ for RocketMQ.
Region
Sim
Selecione a região onde sua instância do ApsaraMQ for RocketMQ está localizada.
Version
Sim
Selecione a versão da instância: RocketMQ 4.x ou RocketMQ 5.x.
Instance
Sim
Selecione a instância do ApsaraMQ for RocketMQ.
Topic
Sim
Selecione o tópico na instância.
Tag
Não
Insira uma tag para filtrar mensagens.
Group ID
Sim
Selecione o ID do grupo de consumidores. Cada grupo corresponde a um tipo de mensagem de negócio. Utilize um grupo dedicado, não compartilhado com outras aplicações ou fontes de evento.
Consumer Offset
Sim
Selecione o offset inicial para o consumo de mensagens. Padrão: Latest Offset.
Verificar a integração
Após criar a fonte de evento, publique uma mensagem de teste no tópico do RocketMQ e verifique o rastreamento do evento no console do EventBridge. Se a configuração estiver correta, a mensagem aparecerá no barramento de eventos formatada como CloudEvents.
Exemplo de evento
Depois que a fonte de evento é criada, as mensagens publicadas no tópico do RocketMQ são entregues ao barramento de eventos como CloudEvents no seguinte formato:
{
"id": "94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source": "acs:mq",
"specversion": "1.0",
"type": "mq:Topic:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mq:cn-hangzhou:123456789098****:MQ_INST_123456789098****_BXhFHryi%TopicName",
"time": "2021-04-08T06:01:20.766Z",
"aliyunpublishtime": "2021-04-08T06:01:20.725Z",
"aliyuneventbusname": "BusName",
"data": {
"topic": "TopicName",
"systemProperties": {
"MIN_OFFSET": "0",
"TRACE_ON": "true",
"MAX_OFFSET": "8",
"MSG_REGION": "cn-hangzhou",
"KEYS": "systemProperties.KEYS",
"CONSUME_START_TIME": 1628577790396,
"UNIQ_KEY": "AC14C305069E1B28CDFA3181CDA2****",
"TAGS": "systemProperties.TAGS",
"INSTANCE_ID": "MQ_INST_123456789098****_BXhFHryi"
},
"userProperties": {},
"body": "TEST"
}
}
Para mais informações sobre os campos de envelope do CloudEvents (id, source, specversion, type, datacontenttype, subject, time), consulte Visão geral de eventos.
Referência do campo data
O objeto data contém os seguintes campos.
|
Campo |
Tipo |
Exemplo |
Descrição |
|
topic |
String |
TopicName |
Nome do tópico do RocketMQ. |
|
systemProperties |
Map |
-- |
Propriedades da mensagem no nível do sistema. Consulte os campos abaixo. |
|
systemProperties.MIN_OFFSET |
Int |
0 |
Offset mais antigo na fila. |
|
systemProperties.TRACE_ON |
Boolean |
true |
Indica se existe rastreamento da mensagem. Valores válidos: |
|
systemProperties.MAX_OFFSET |
Int |
8 |
Offset mais recente na fila. |
|
systemProperties.MSG_REGION |
String |
cn-hangzhou |
Região de origem do envio da mensagem. |
|
systemProperties.KEYS |
String |
systemProperties.KEYS |
Chaves utilizadas para filtrar a mensagem. |
|
systemProperties.CONSUME_START_TIME |
Long |
1628577790396 |
Horário de início do consumo da mensagem, em milissegundos. |
|
systemProperties.UNIQ_KEY |
String |
AC14C305069E1B28CDFA3181CDA2**** |
Identificador exclusivo da mensagem. |
|
systemProperties.TAGS |
String |
systemProperties.TAGS |
Tags utilizadas para filtrar a mensagem. |
|
systemProperties.INSTANCE_ID |
String |
MQ_INST_123456789098****_BXhFHryi |
ID da instância do ApsaraMQ for RocketMQ. |
|
userProperties |
Map |
None |
Propriedades personalizadas definidas pelo usuário e anexadas à mensagem. |
|
body |
String |
TEST |
Corpo da mensagem. |