Todos os produtos
Search
Central de documentação

Function Compute:Gatilhos de fila do Simple Message Queue (antigo MNS)

Última atualização: Sep 09, 2026

Os gatilhos de fila do Simple Message Queue (antigo MNS) permitem executar uma função do Function Compute automaticamente sempre que uma mensagem chega a uma fila. O gatilho usa o EventBridge como base: ao criar o gatilho no console do Function Compute, o serviço cria os event streams necessários no EventBridge em seu nome. Para obter detalhes sobre event streams, consulte Overview.

Com o gatilho ativo, cada mensagem adicionada à fila de origem aciona a execução da função associada. As mensagens são entregues individualmente ou em lotes, conforme a configuração de lote definida. Esse padrão é ideal para processamento de dados em streaming de ponta a ponta.

Restrições

  • A fila do Simple Message Queue (antigo MNS) e a função do Function Compute devem estar na mesma região.

  • Se sua conta Alibaba Cloud atingir o limite de event streams do EventBridge, não será possível criar novos gatilhos de fila do Simple Message Queue (antigo MNS). Para consultar os limites atuais, consulte Limits.

Pré-requisitos

Antes de começar, verifique se você tem:

Etapa 1: Criar um gatilho

  1. Faça login no console do Function Compute e clique em na função desejada.

  2. Na página de detalhes da função, clique em na aba Configurations, acesse Triggers e clique em Create Trigger.

  3. Preencha as configurações do gatilho. O campo principal é Invocation Method. Para mais detalhes, consulte Synchronous invocation e Asynchronous invocation.

    Método de invocação

    Comportamento

    Payload máximo

    Quando usar

    Sync Invocation

    O Function Compute aguarda o retorno da função antes de entregar o próximo evento ou lote

    32 MB

    Quando a ordem ou o processamento sequencial for importante

    Async Invocation

    O Function Compute entrega o evento e passa imediatamente para o próximo; a função executa em segundo plano

    128 KB

    Cenários de alto throughput que exigem consumo rápido de eventos

  4. Clique em OK.

image

Para configurações avançadas, como definições de push, políticas de nova tentativa e filas de mensagens mortas, consulte Advanced features of triggers.

Após a criação, o gatilho aparece na aba Triggers. Para modificá-lo ou excluí-lo, consulte Manage triggers.

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

A função recebe eventos do Simple Message Queue (antigo MNS) como um parâmetro event — um array de objetos no formato CloudEvents. Para testar o código da função sem enviar uma mensagem real, simule o evento manualmente.

  1. Na aba Code, clique em no ícone 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 abaixo e clique em OK.

Exemplo de payload do 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"
    }
  }
]

Referência de campos do evento

Cada elemento do array segue a CloudEvents specification.

Campos de envelope CloudEvents

Campo

Tipo

Exemplo

Descrição

id

String

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

ID único do evento

source

String

MNS-Function-mnstrigger

Identificador da origem do evento (nome do event bus)

type

String

mns:Queue:SendMessage

Tipo do evento

subject

String

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

ARN da fila de origem

time

String

2021-04-08T06:28:17.093Z

Horário em que a mensagem foi enfileirada (ISO 8601)

specversion

String

1.0

Versão da especificação CloudEvents

datacontenttype

String

application/json; charset=utf-8

Tipo de conteúdo do campo data

aliyunregionid

String

cn-chengdu

Região onde a fila está localizada

aliyunaccountid

String

164901546557****

ID da conta Alibaba Cloud

aliyunpublishtime

String

2021-10-15T07:06:34.028Z

Horário em que o EventBridge publicou o evento

Campos de data

Campo

Tipo

Exemplo

Descrição

requestId

String

606EA3074344430D4C81****

ID único da solicitação de envio de mensagem

messageId

String

C6DB60D1574661357FA227277445****

ID único da mensagem

messageBody

String

TEST

Conteúdo do corpo da mensagem

Etapa 3: Escrever e testar a função

Após criar o gatilho, escreva o código da função, implante-o e verifique se o gatilho funciona corretamente de ponta a ponta.

Escrever e implantar o código da função

Na aba Code, escreva seu handler e clique em Deploy Code.

O exemplo Node.js a seguir demonstra como escrever o código da função:

'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');
}

Testar a função

Use um dos métodos abaixo:

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

  • Mensagem real: Faça login no Simple Message Queue (formerly MNS) console, selecione a fila de origem 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