Todos los productos
Search
Centro de documentos

Function Compute:Triggers de RocketMQ

Última actualización: Sep 06, 2026

Una vez que ApsaraMQ for RocketMQ se integra con Function Compute mediante EventBridge como origen de eventos, un trigger de ApsaraMQ for RocketMQ (o trigger de RocketMQ) invoca la función asociada. Esta función le permite procesar los mensajes publicados en ApsaraMQ for RocketMQ de forma personalizada. En este tema se describe cómo crear un trigger de RocketMQ en la consola de Function Compute, configurar los parámetros del punto de entrada de la función y escribir y probar el código de la función.

Funcionamiento

Cuando usted envía una solicitud de creación de trigger en la consola de Function Compute, el servicio crea automáticamente un recurso Event stream en EventBridge a partir de la configuración del trigger.

Una vez creado el trigger, puede consultar su información en la consola de Function Compute y revisar los recursos generados automáticamente en la consola de EventBridge. Cuando un mensaje entra en la cola de la instancia de ApsaraMQ for RocketMQ de origen, se invoca Function Compute. En cada invocación, uno o más eventos de mensaje se envían a la función en un lote, según la configuración de lotes establecida. Este comportamiento es ideal para escenarios de procesamiento de datos de streaming de extremo a extremo.

Notas de uso

  • La instancia de ApsaraMQ for RocketMQ que actúa como origen de eventos debe ubicarse en la misma región que la función de Function Compute.

  • Si la cantidad de flujos de eventos creados supera el límite máximo, ya no podrá crear triggers de RocketMQ.

Para conocer los límites de los recursos involucrados al crear un trigger dentro de una sola cuenta de Alibaba Cloud en una única región, consulte Limits.

Requisitos previos

Paso 1: Crear un trigger

  1. Inicie sesión en la consola de Function Compute, busque la función que desea gestionar y, en la página de detalles de la función, haga clic en la pestaña Trigger y luego en Create Trigger.

  2. En el panel Create Trigger, establezca Trigger Type en ApsaraMQ for RocketMQ, configure los parámetros descritos en la tabla a continuación y haga clic en OK.

Parámetro

Descripción

Ejemplo

Name

Introduzca un nombre personalizado para el trigger.

rocketmq-trigger

Version or Alias

Valor predeterminado: LATEST. Para crear un trigger para otra versión o alias, primero cambie a esa versión o alias en la esquina superior derecha de la página de detalles de la función. Para obtener una introducción a las versiones y los alias, consulte Versions y Aliases.

LATEST

ApsaraMQ for RocketMQ Instance

Seleccione una instancia de ApsaraMQ for RocketMQ existente.

rmq-zky****

Topic

Seleccione un topic de la instancia de ApsaraMQ for RocketMQ existente.

topic1

Tag

Introduzca una etiqueta de filtro de mensajes. La función se invoca únicamente cuando se recibe un mensaje que contiene esta etiqueta de filtro.

tag

Group ID

Cree rápidamente un identificador de grupo o seleccione uno existente. No comparta un identificador de grupo con un negocio existente, para evitar afectar el envío y la recepción de mensajes de dicho negocio.

GID_FC_TRIGGER_****

Consumer Offset

Seleccione el desplazamiento de consumo de los mensajes de ApsaraMQ for RocketMQ, es decir, la posición desde la cual EventBridge comienza a extraer mensajes. Valores válidos: Latest Offset: consume desde el desplazamiento más reciente. Earliest Offset: consume desde el desplazamiento más antiguo. Timestamp: consume desde una marca de tiempo específica.

Latest Offset

Invocation Method

Seleccione la forma en que se invoca la función. Valores válidos: Sync Invocation: adecuada para escenarios de invocación secuencial. Un evento individual o un lote invoca la función, y el siguiente evento o lote la invoca solo después de que la invocación actual devuelve un resultado. La carga útil máxima del cuerpo de una solicitud de invocación síncrona es de 32 MB. Para obtener más información, consulte Synchronous invocation. Async Invocation: consume eventos rápidamente. Un evento individual o un lote invoca la función, Function Compute devuelve una respuesta de inmediato y el siguiente evento o lote invoca la función. Durante este proceso, la función se ejecuta de forma asíncrona. La carga útil máxima del cuerpo de una solicitud de invocación asíncrona es de 128 KB. Para obtener más información, consulte Asynchronous invocation.

Sync Invocation

Para configuraciones avanzadas, como la configuración de envío, las directivas de reintento y las colas de mensajes no entregados, consulte Advanced features of triggers.

Paso 2: (Opcional) Configurar los parámetros de entrada de la función

El origen de eventos de ApsaraMQ for RocketMQ se pasa a la función como el parámetro de entrada event. Utilice su código para analizar sintácticamente el parámetro event y procesarlo. También puede pasar un event a la función de forma manual para simular un evento de trigger y comprobar si el código de la función es correcto.

  1. En la pestaña Code de la página de detalles de la función, haga clic en el ícono image.png junto a Test Function y seleccione Configure Test Parameters en la lista desplegable.

  2. En el panel Configure Test Parameters, seleccione Create New Test Event o Modify Existing Test Event, introduzca un nombre de evento y su contenido, y luego haga clic en OK.

El formato de event es el siguiente.

[
    {
    "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"
    }
    }
]

La tabla a continuación describe los parámetros contenidos en el campo data. Para los parámetros definidos en la especificación CloudEvents, consulte Overview.

Campo

Tipo

Ejemplo

Descripción

topic

String

TopicName

El nombre del topic.

systemProperties

Map

Propiedades de mensaje a nivel de sistema de RocketMQ.

systemProperties.MIN_OFFSET

Int

0

El desplazamiento más antiguo en la cola.

systemProperties.TRACE_ON

Boolean

true

Indica si existe un rastreo del mensaje.

systemProperties.MAX_OFFSET

Int

8

El desplazamiento más reciente en la cola.

systemProperties.MSG_REGION

String

cn-hangzhou

La región donde se envió el mensaje.

systemProperties.KEYS

String

systemProperties.KEYS

Claves utilizadas para filtrar el mensaje.

systemProperties.CONSUME_START_TIME

Long

1628577790396

Hora de inicio del consumo del mensaje, en milisegundos.

systemProperties.UNIQ_KEY

String

AC14C305069E1B28CDFA3181CDA2****

La clave única del mensaje.

systemProperties.TAGS

String

systemProperties.TAGS

Etiquetas utilizadas para filtrar el mensaje.

systemProperties.INSTANCE_ID

String

MQ_INST_123456789098****_BXhFHryi

El identificador de la instancia de ApsaraMQ for RocketMQ.

userProperties

Map

Las propiedades del usuario.

body

String

TEST

El cuerpo del mensaje.

Paso 3: Escribir y probar el código de la función

Después de crear el trigger, escriba y pruebe el código de la función para comprobar que sea correcto. En la práctica, cuando un evento de ApsaraMQ for RocketMQ se entrega a Function Compute a través de EventBridge, el trigger invoca automáticamente la función.

  1. En la pestaña Code de la página de detalles de la función, escriba su código en el editor y haga clic en Deploy.

    Este tema utiliza código de función en Node.js como ejemplo.

    'use strict';
    /*
    To enable the initializer feature,
    implement the initializer function as follows:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Parse the event parameter and process the event.
      callback(null, 'return result');
    }
  2. Pruebe la función.

    Método 1: Si configuró el parámetro de entrada de la función event para simular el origen de eventos, haga clic en Test Function.

    Método 2: Inicie sesión en la consola de ApsaraMQ for RocketMQ, busque el topic de la instancia de ApsaraMQ for RocketMQ que desea utilizar, haga clic en Message Send/Receive Test y envíe un mensaje siguiendo las indicaciones.

  3. Una vez finalizada la ejecución, vaya a la pestaña Code de la página de detalles de la función y haga clic en Real-time Logs para consultar el resultado.