Todos los productos
Search
Centro de documentos

Function Compute:Disparadores de cola de Simple Message Queue (anteriormente MNS)

Última actualización: Sep 06, 2026

Los disparadores de cola de Simple Message Queue (anteriormente MNS) permiten ejecutar una función de Function Compute automáticamente cada vez que llega un mensaje a una cola. Este mecanismo se apoya en EventBridge: cuando usted crea el disparador en la consola de Function Compute, el servicio genera los flujos de eventos necesarios en EventBridge por usted. Para más información sobre los flujos de eventos, consulte Overview.

Una vez que el disparador está activo, cada mensaje que se inserta en la cola de origen provoca la ejecución de la función asociada. Los mensajes se entregan de forma individual o por lotes, según la configuración de lotes definida. Este patrón es ideal para el procesamiento de datos de streaming de extremo a extremo.

Restricciones

  • La cola de Simple Message Queue (anteriormente MNS) y la función de Function Compute deben estar en la misma región.

  • Si su cuenta de Alibaba Cloud alcanza el límite de flujos de eventos de EventBridge, no podrá crear más disparadores de cola de Simple Message Queue (anteriormente MNS). Para consultar los límites actuales, consulte Limits.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Paso 1: Crear un disparador

  1. Inicie sesión en la consola de Function Compute y haga clic en la función que desea utilizar.

  2. En la página de detalles de la función, haga clic en la pestaña Configurations. Luego, vaya a Triggers y haga clic en Create Trigger.

  3. Complete la configuración del disparador. El campo clave es Invocation Method. Para más detalles, consulte Synchronous invocation y Asynchronous invocation.

    Método de invocación

    Comportamiento

    Carga útil máxima

    Cuándo usarlo

    Sync Invocation

    Function Compute espera a que la función devuelva un resultado antes de entregar el siguiente evento o lote

    32 MB

    Cuando importa el orden o el procesamiento secuencial

    Async Invocation

    Function Compute entrega el evento y pasa de inmediato al siguiente; la función se ejecuta en segundo plano

    128 KB

    Escenarios de alto throughput donde se requiere consumir eventos rápidamente

  4. Haga clic en OK.

image

Para configuraciones avanzadas, como ajustes de envío, directivas de reintento y colas de mensajes no entregados, consulte Advanced features of triggers.

Una vez creado el disparador, este aparece en la pestaña Triggers. Para modificarlo o eliminarlo, consulte Gestionar disparadores.

Paso 2: (Opcional) Configurar parámetros de prueba

La función recibe los eventos de Simple Message Queue (anteriormente MNS) mediante el parámetro event, que consiste en un arreglo de objetos con formato CloudEvents. Para probar el código de su función sin enviar un mensaje real, simule el evento manualmente.

  1. En la pestaña Code, haga clic en el ícono image.png junto a Test Function y seleccione Configure Test Parameters.

  2. En el panel Configure Test Parameters, haga clic en Create New Test Event o en Modify Existing Test Event. Introduzca un nombre de evento y el contenido que se muestra a continuación, y luego haga clic en OK.

Ejemplo de carga útil del parámetro event:

[
  {
    "id": "c2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  },
  {
    "id": "d2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  }
]

Referencia de campos del evento

Cada elemento del arreglo sigue la especificación CloudEvents specification.

Campos de envoltura de CloudEvents

Campo

Tipo

Ejemplo

Descripción

id

String

c2g71017-6f65-fhcf-a814-a396fc8d****

Identificador único del evento

source

String

MNS-Function-mnstrigger

Identificador del origen del evento (nombre del bus de eventos)

type

String

mns:Queue:SendMessage

Tipo de evento

subject

String

acs:mns:cn-hangzhou:...:queues/zeus

ARN de la cola de origen

time

String

2021-04-08T06:28:17.093Z

Hora en la que se insertó el mensaje en la cola (ISO 8601)

specversion

String

1.0

Versión de la especificación de CloudEvents

datacontenttype

String

application/json; charset=utf-8

Tipo de contenido del campo data

aliyunregionid

String

cn-chengdu

Región donde reside la cola

aliyunaccountid

String

164901546557****

Identificador de la cuenta de Alibaba Cloud

aliyunpublishtime

String

2021-10-15T07:06:34.028Z

Hora en la que EventBridge publicó el evento

Campos de data

Campo

Tipo

Ejemplo

Descripción

requestId

String

606EA3074344430D4C81****

Identificador único de la solicitud de envío del mensaje

messageId

String

C6DB60D1574661357FA227277445****

Identificador único del mensaje

messageBody

String

TEST

Contenido del cuerpo del mensaje

Paso 3: Escribir y probar la función

Después de crear el disparador, escriba el código de la función, despliéguelo y compruebe que funciona correctamente de extremo a extremo.

Escribir y desplegar el código de la función

En la pestaña Code, escriba su controlador y haga clic en Deploy Code.

A continuación se muestra un ejemplo en Node.js que ilustra cómo escribir el código de la función:

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

Probar la función

Utilice cualquiera de estos métodos:

  • Evento simulado: Si configuró un evento de prueba en el paso 2, haga clic en Test Function dentro de la pestaña Code.

  • Mensaje real: Inicie sesión en Simple Message Queue (formerly MNS) console, seleccione la cola de origen y haga clic en Send Message.

image

Una vez que se ejecute la función, consulte el resultado en Real-time Logs.

image

Pasos siguientes