Todos os produtos
Search
Central de documentação

Function Compute:Gatilhos de tópico do Message Queue for MNS

Última atualização: Jun 29, 2026

Os tópicos do Simple Message Queue (formerly MNS) funcionam como fontes de eventos e se integram ao EventBridge e ao Function Compute. Um gatilho de tópico do Simple Message Queue (formerly MNS) executa automaticamente a função associada quando uma nova mensagem é enviada para o seu tópico do Simple Message Queue (formerly MNS). Isso permite implementar facilmente um processamento personalizado para as mensagens recebidas.

Informações básicas

O Message Queue for MNS é um serviço de mensagens distribuídas eficiente, confiável, seguro, fácil de usar e com dimensionamento elástico. Ele auxilia os desenvolvedores de aplicativos a transmitir dados e notificações entre componentes distribuídos e a construir sistemas fracamente acoplados. No Message Queue for MNS, um tópico é o destino onde as mensagens são publicadas. Um publicador pode chamar a API PublishMessage para publicar uma mensagem em um tópico, e os assinantes desse tópico recebem a mensagem. Para detalhes sobre a API, consulte PublishMessage.

Ao configurar um gatilho de tópico do Simple Message Queue (formerly MNS), você registra sua função como assinante do tópico do Simple Message Queue (formerly MNS). Quando um publicador envia uma mensagem para o tópico do Simple Message Queue (formerly MNS), o conteúdo da mensagem é entregue à função para acionar sua execução. O conteúdo da mensagem é passado como o parâmetro event para o manipulador da função. Para mais informações, consulte Informações básicas.

A integração entre o Message Queue for MNS e o Function Compute oferece os seguintes benefícios:

  • Execute processamentos avançados nas mensagens antes de enviá-las por e-mail ou SMS.

  • Elimine a necessidade de hospedar um serviço para um endpoint HTTP.

  • Implemente processamentos personalizados ricos, como o envio de mensagens para o Slack ou a persistência de mensagens específicas.

Pré-requisitos

Observações de uso

  • O tópico no Message Queue for MNS e a função no Function Compute devem estar na mesma região.

  • Evite invocações recursivas.

    Ao escrever o código da função, garanta que ela não contenha a seguinte lógica: o Tópico A aciona a Função B, e a Função B publica uma nova mensagem no Tópico A. Isso pode causar invocações recursivas infinitas.

Etapa 1: Crie um gatilho de tópico do Message Queue for MNS

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique em na função desejada.

  3. Na página de detalhes da função, selecione a aba Trigger e clique em Create Trigger.

  4. No painel Create Trigger, configure os parâmetros e clique em OK.

    Parâmetro

    Ações

    Exemplo

    Trigger Type

    Selecione Message Queue for MNS Topic Trigger - Asynchronous Invocation.

    Gatilho de tópico do Simple Message Queue (formerly MNS)

    Name

    Insira um nome personalizado para o gatilho.

    trigger-mns

    Version or Alias

    O valor padrão é LATEST. Para criar um gatilho para outra versão ou alias, primeiro mude para essa versão ou alias no canto superior direito da página de detalhes da função. Para obter uma visão geral de versões e aliases, consulte Gerencie versões e Gerencie aliases.

    LATEST

    MNS region

    Selecione a região onde o tópico está localizado. O tópico do Simple Message Queue (formerly MNS) e a função do Function Compute devem estar na mesma região.

    China (Chengdu)

    Topic

    Escolha o tópico na lista.

    Mytopic

    Filter tag

    Insira uma tag de filtro de mensagens.

    A função é acionada apenas ao receber mensagens que contêm a tag de filtro especificada.

    tag

    Event format

    Selecione um formato de evento. Valores válidos:

    • STREAM

    • JSON

    JSON

    Retry policy

    Escolha uma política de nova tentativa. Valores válidos:

    • Backoff Retry

    • Exponential decay retry

    Para obter orientações sobre como escolher uma política de nova tentativa, consulte NotifyStrategy.

    Backoff Retry

    Role Name

    Selecione AliyunMNSNotificationRole.

    Nota

    Se esta for a primeira vez que você cria esse tipo de gatilho, após clicar em OK, selecione Authorize Now na caixa de diálogo exibida.

    AliyunMNSNotificationRole

Etapa 2: Configure os parâmetros de entrada da função

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

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

    As mensagens publicadas em um tópico do Simple Message Queue (formerly MNS) são processadas com base no notifyContentFormat. A mensagem processada corresponde ao parâmetro event do manipulador da função. Para mais informações, consulte NotifyContentFormat.

    • Caso tenha definido Event Format como STREAM ao criar o gatilho:

      • Se a mensagem não incluir atributos de mensagem (MessageAttributes), o formato do evento será o seguinte.

        Nota

        Quando a mensagem não possui atributos (MessageAttributes), o conteúdo do evento é o corpo bruto da mensagem como uma string.

        # Message body.
        'hello topic'
      • Se a mensagem incluir atributos de mensagem (MessageAttributes), o formato do evento será o seguinte.

        Nota

        O conteúdo do evento inclui pares chave-valor relacionados aos MessageAttributes. Para mais informações, consulte PublishMessage.

            {
                "body": "hello topic",
                "attrs": {
                    "Extend": "{\\"key\\":\\"value\\"}"
                }
            }                    
    • Caso tenha definido Event Format como JSON ao criar o gatilho:

      • Quando a mensagem não inclui atributos de mensagem (MessageAttributes), o formato do evento é apresentado abaixo.

            {
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216480040,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C082B923D4EAC694B76D928****"
            }        
                                    
      • Se a mensagem possuir atributos de mensagem (MessageAttributes), o formato do evento segue este modelo.

        Nota

        O conteúdo do evento contém pares chave-valor associados aos MessageAttributes. Para mais detalhes, consulte PublishMessage.

            {
                "key": "value",
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216302888,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C281B283D4EAC694B742528****"
            }
                                    

    A tabela a seguir descreve os campos do parâmetro event.

    Parâmetro

    Tipo

    Exemplo

    Descrição

    key

    String

    value

    Pares chave-valor provenientes dos atributos da mensagem.

    TopicOwner

    String

    118620210433****

    O ID da conta proprietária do tópico.

    Message

    String

    hello topic

    O conteúdo da mensagem.

    Subscriber

    String

    118620210433****

    O ID da conta do usuário.

    PublishTime

    Int

    1550216302888

    O momento em que a mensagem foi publicada.

    SubscriptionName

    String

    test-fc-subscribe

    O nome da assinatura.

    MessageMD5

    String

    BA4BA9B48AC81F0F9C66F6C909C3****

    O hash MD5 do corpo da mensagem.

    TopicName

    String

    Mytopic

    O nome do tópico.

    MessageId

    String

    2F5B3C281B283D4EAC694B742528****

    O ID da mensagem.

Etapa 3: Escrever e testar o código da função

Após criar um gatilho de tópico do Simple Message Queue (formerly MNS), escreva e teste o código da sua função para verifique se ela funciona conforme o esperado.

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

    Esta seção utiliza código Python como exemplo. Use o código de amostra a seguir como modelo para um gatilho de tópico do Simple Message Queue (formerly MNS).

    import json
    import logging
    
    def handler(event, context):
      logger = logging.getLogger()
      logger.info("mns_topic trigger event = {}".format(event))
      # For example, record the event to Tablestore.
      return "OK"                     
  2. Clique em Test Function.

    Após a conclusão da execução, visualize o resultado acima da aba Code.

Mais informações

Além do console do Function Compute, você também pode configurar gatilhos das seguintes maneiras:

  • Utilize a ferramenta Serverless Devs para configurar gatilhos. Para mais informações, consulte Comandos comuns do Serverless Devs.

  • Use SDKs para configurar gatilhos. Para mais informações, consulte SDKs.

Para modifique ou exclua um gatilho, consulte Gerencie gatilhos.