Ao integrar o Message Queue for MQTT ao Function Compute com o EventBridge como origem de eventos, você pode usar um trigger do Message Queue for MQTT para invocar uma função e personalizar o processamento das mensagens publicadas no Message Queue for MQTT. Este tópico descreve como criar um trigger do MQTT, configurar parâmetros de entrada, além de escrever e testar código no console do Function Compute.
Informações básicas
Ao criar um trigger no console do Function Compute, o serviço cria automaticamente um recurso de fluxo de eventos no EventBridge com base na configuração do trigger.
Após a criação, visualize os detalhes do trigger no console do Function Compute. Você também pode visualizar os recursos criados automaticamente no console do EventBridge. Quando uma mensagem chega ao Message Queue for MQTT, o trigger invoca a função. Dependendo da configuração de lote, um ou mais eventos de mensagem são enviados à função em lote para processamento.
Pré-requisitos
-
EventBridge
-
Function Compute
-
Message Queue for MQTT
Limites
A instância do Message Queue for MQTT e a função do Function Compute devem estar na mesma região.
Se você atingir o número máximo de fluxos de eventos, não será possível criar novos triggers do MQTT. Para obter mais informações sobre limites de fluxo de eventos, consulte Limites.
Etapa 1: Criar um trigger do MQTT
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na página Functions, clique em a função desejada.
Na página de detalhes da função, clique em a aba Trigger e, em seguida, clique em Create Trigger.
-
No painel Create Trigger, insira as informações necessárias e clique em OK.
Parâmetro
Ações
Exemplo
Trigger Type
Selecione ApsaraMQ for MQTT.
Message Queue for MQTT
Name
Insira um nome personalizado para o trigger.
mqtt-trigger
Version or Alias
O valor padrão é LATEST. Caso precise criar um trigger para uma versão ou alias diferente, alterne para essa versão ou alias no canto superior direito da página de detalhes da função. Para mais informações, consulte Gerenciar versões e Gerenciar aliases.
LATEST
ApsaraMQ for MQTT Instance
Selecione uma instância MQTT existente.
mqtt-xxx
MQTT topic
Escolha um tópico MQTT existente.
testTopic
Invocation Method
Defina o método de invocação da função.
Valores válidos:
Sync Invocation: Método padrão. Quando um evento aciona a função, o Function Compute aguarda a conclusão da invocação antes de retornar o resultado. Para mais informações, consulte invocações síncronas.
Async Invocation: Recomendado para funções com tempos de execução longos. Quando um evento aciona a função, o Function Compute retorna uma resposta imediatamente. O serviço garante que a função seja executada pelo menos uma vez, mas o resultado da execução não é retornado na resposta. Para mais informações, consulte invocação assíncrona.
Synchronous Invocation
Trigger State
Define se o trigger deve ser ativado imediatamente após a criação. Por padrão, esta opção vem selecionada.
Enable Trigger
Para obter informações sobre configurações avançadas, como configuração de push, políticas de nova tentativa e filas de mensagens mortas, consulte Recursos avançados de triggers.
Depois de criado, o trigger aparece na aba Triggers. Para modificar ou excluir o trigger, consulte Gerenciar triggers.
Etapa 2: Configurar os parâmetros de entrada da função
Uma origem de evento MQTT é passada para uma função como parâmetro de entrada na forma de um evento. Você pode passar manualmente um evento para a função a fim de simular um acionamento de evento.
Na aba Code da página de detalhes da função, clique em o ícone
ao lado de Test Function e selecione Configure Test Parameters na lista suspensa.-
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.
O evento tem o seguinte formato:
[ { "props": { "firstTopic": "testTopic", "secondTopic": "/testMq4****", "clientId": "consumerGroupID@@@xxx" }, "body": "hello mq4Iot pub sub msg" } ]A tabela a seguir descreve os parâmetros no objeto evento.
Parâmetro
Tipo
Exemplo
Descrição
props
Map
Os atributos da mensagem.
firstTopic
String
testTopic
O tópico pai usado para enviar e receber mensagens.
secondTopic
String
/testMq4****
O tópico filho.
clientId
String
consumerGroupID@@@xx
O ID do cliente.
body
String
hello mq4Iot pub sub msg
O corpo da mensagem.
Etapa 3: Escrever e testar o código da função
Após criar o trigger, escreva e teste o código da função para verificar se ele funciona corretamente. Em um ambiente de produção, o trigger invoca automaticamente a função quando o Message Queue for MQTT recebe uma mensagem.
-
Na página de detalhes da função, acesse a aba Code. No editor de código, escreva seu código e clique em Deploy.
O exemplo de código a seguir foi escrito em Node.js.
'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'); } Clique em Test Function.
Mais informações
Além do console do Function Compute, você também pode configurar triggers das seguintes maneiras:
Utilize a ferramenta Serverless Devs para configurar triggers. Para mais informações, consulte Comandos comuns do Serverless Devs.
Use SDKs para configurar triggers. Para mais detalhes, veja SDKs.
Para modificar ou excluir um trigger, consulte Gerenciar triggers.