Todos os produtos
Search
Central de documentação

Function Compute:Triggers do RocketMQ

Última atualização: Jun 29, 2026

Use um trigger do ApsaraMQ for RocketMQ para invocar uma função do Function Compute sempre que uma mensagem chegar a um tópico. O Function Compute integra-se ao ApsaraMQ for RocketMQ por meio do EventBridge, responsável pelo roteamento e pela entrega de eventos. Este tópico orienta você na criação de um trigger, no entendimento do payload do evento, na escrita do código da função e nos testes da configuração.

Como funciona

Ao criar um trigger do ApsaraMQ for RocketMQ no console do Function Compute, o serviço cria automaticamente fluxos de eventos no EventBridge com base na sua configuração. Quando o trigger está ativo, as mensagens que chegam ao tópico de origem são entregues à sua função — individualmente ou em lotes, conforme a configuração definida.

Os triggers do ApsaraMQ for RocketMQ foram projetados para cenários de processamento de dados em streaming de ponta a ponta.

Limites

  • A instância do ApsaraMQ for RocketMQ deve residir na mesma região da função do Function Compute.

  • Se o número de fluxos de eventos na sua conta atingir o limite máximo, não será possível criar novos triggers do ApsaraMQ for RocketMQ. Para informações sobre cotas, consulte Limites.

Pré-requisitos

Antes de começar, verifique se você:

Etapa 1: Criar um trigger

  1. Faça login no console do Function Compute e acesse a página de detalhes da função.

  2. Clique em Configurations e, em seguida, clique em Create Trigger na página Triggers.

  3. Configure os parâmetros do trigger descritos na tabela a seguir e clique em OK.

image

Parâmetro

Descrição

Exemplo

Consumer offset

Define o ponto a partir do qual o ApsaraMQ for RocketMQ começa a buscar mensagens. Valores válidos: Latest Offset (inicia pela mensagem mais recente), Earliest Offset (inicia pela mensagem disponível mais antiga) e Timestamp (inicia a partir de um momento específico).

Latest Offset

Invocation method

Determina como a função é invocada quando um evento chega. Sync Invocation: o Function Compute executa a função e aguarda uma resposta antes de processar o próximo evento ou lote. Payload máximo: 32 MB. Consulte Invocação síncrona. Async Invocation: o Function Compute passa imediatamente para o próximo evento sem esperar a conclusão da função. Payload máximo: 128 KB. Consulte Invocação assíncrona.

Sync Invocation

Para configurações avançadas, como push configuration, políticas de repetição e filas de mensagens mortas, consulte Recursos avançados de triggers.

Etapa 2: (Opcional) Configurar parâmetros de teste

O ApsaraMQ for RocketMQ entrega mensagens à sua função como um array event. Antes de enviar mensagens reais, simule eventos de trigger para verificar o código da sua função.

  1. Na aba Code da página de detalhes da função, clique em image.png ao lado de Test Function e selecione Configure Test Parameters.

  2. No painel Configure Test Parameters, clique em Create New Test Event ou Modify Existing Test Event, insira um nome e o conteúdo do evento e clique em OK.

Veja a seguir um exemplo de payload event contendo duas mensagens:

[
    {
        "id": "94ebc15f-f0db-4bbe-acce-56fb72fb****",
        "source": "RocketMQ-Function-rocketmq-trigger",
        "specversion": "1.0",
        "type": "mq:Topic:SendMessage",
        "datacontenttype": "application/json; charset=utf-8",
        "subject": "acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
        "time": "2021-04-08T06:01:20.766Z",
        "aliyunaccountid": "164901546557****",
        "aliyunpublishtime": "2021-10-15T02:05:16.791Z",
        "aliyunoriginalaccountid": "164901546557****",
        "aliyuneventbusname": "RocketMQ-Function-rocketmq-trigger",
        "aliyunregionid": "cn-chengdu",
        "aliyunpublishaddr": "42.120.XX.XX",
        "data": {
            "topic": "TopicName",
            "systemProperties": {
                "MIN_OFFSET": "0",
                "TRACE_ON": "true",
                "MAX_OFFSET": "8",
                "MSG_REGION": "cn-hangzhou",
                "KEYS": "systemProperties.KEYS",
                "CONSUME_START_TIME": 1628577790396,
                "TAGS": "systemProperties.TAGS",
                "INSTANCE_ID": "MQ_INST_164901546557****_BXhFHryi"
            },
            "userProperties": {},
            "body": "TEST"
        }
    },
    {
        "id": "94ebc15f-f0db-4bbe-acce-56fb72fb****",
        "source": "RocketMQ-Function-rocketmq-trigger",
        "specversion": "1.0",
        "type": "mq:Topic:SendMessage",
        "datacontenttype": "application/json; charset=utf-8",
        "subject": "acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
        "time": "2021-04-08T06:01:20.766Z",
        "aliyunaccountid": "164901546557****",
        "aliyunpublishtime": "2021-10-15T02:05:16.791Z",
        "aliyunoriginalaccountid": "164901546557****",
        "aliyuneventbusname": "RocketMQ-Function-rocketmq-trigger",
        "aliyunregionid": "cn-chengdu",
        "aliyunpublishaddr": "42.120.XX.XX",
        "data": {
            "topic": "TopicName",
            "systemProperties": {
                "MIN_OFFSET": "0",
                "TRACE_ON": "true",
                "MAX_OFFSET": "8",
                "MSG_REGION": "cn-hangzhou",
                "KEYS": "systemProperties.KEYS",
                "CONSUME_START_TIME": 1628577790396,
                "TAGS": "systemProperties.TAGS",
                "INSTANCE_ID": "MQ_INST_164901546557****_BXhFHryi"
            },
            "userProperties": {},
            "body": "TEST"
        }
    }
]

Cada elemento do array é uma mensagem formatada em CloudEvents. Os campos de nível superior (id, source, specversion, entre outros) seguem a especificação CloudEvents. Para mais detalhes, consulte Visão geral. O objeto data contém o conteúdo da mensagem do RocketMQ:

Campo

Tipo

Exemplo

Descrição

topic

String

TopicName

Nome do tópico.

systemProperties

Map

Propriedades de mensagem no nível de sistema do RocketMQ.

systemProperties.MIN_OFFSET

Int

0

Offset mais antigo na fila.

systemProperties.TRACE_ON

Boolean

true

Indica se existe um rastro de mensagem.

systemProperties.MAX_OFFSET

Int

8

Offset mais recente na fila.

systemProperties.MSG_REGION

String

cn-hangzhou

Região onde a mensagem foi enviada.

systemProperties.KEYS

String

systemProperties.KEYS

Chaves usadas 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****

Chave exclusiva da mensagem.

systemProperties.TAGS

String

systemProperties.TAGS

Tags usadas para filtrar a mensagem.

systemProperties.INSTANCE_ID

String

MQ_INST_123456789098****_BXhFHryi

ID da instância do ApsaraMQ for RocketMQ.

userProperties

Map

Propriedades definidas pelo usuário.

body

String

TEST

Corpo da mensagem.

Etapa 3: Escrever e testar sua função

Após criar o trigger, escreva o código da sua função e teste-o.

Escrever o código da função

Na aba Code da página de detalhes da função, escreva seu código de handler e clique em Deploy Code.

O exemplo Node.js a seguir demonstra como lidar com o evento:

'use strict';

exports.handler = (event, context, callback) => {
  console.log("event: %s", event);
  // Parse the event parameters and process the event.
  callback(null, 'return result');
}

Testar a função

Há dois métodos disponíveis:

Método 1: Simular com parâmetros de teste

Caso tenha configurado um evento de teste na Etapa 2, clique em Test Function na aba Code.

Método 2: Enviar uma mensagem real

Faça login no console do ApsaraMQ for RocketMQ, selecione o tópico criado e clique em Send Message.

image

Após a execução da função, visualize a saída em Real-time Logs.

image

Próximos passos

  • Para modificar ou excluir este trigger, consulte Gerenciar triggers.

  • Para visualizar os fluxos de eventos criados por este trigger, faça login no console do EventBridge. Consulte Visão geral.