Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, você roteia mensagens MQTT recebidas por um namespace da Grade de Eventos do Azure para uma função do Azure usando um tópico personalizado da Grade de Eventos.
Se não tiver uma subscrição do Azure, pode inscrever-se para uma avaliação gratuita .
Criar uma função do Azure usando o gatilho Event Grid
Siga as instruções de Criar uma função do Azure usando o Visual Studio Code, mas use o Gatilho de Grade de Eventos do Azure em vez de usar o Gatilho HTTP.
Importante
Crie todos os recursos na mesma região.
Você deve ver um código semelhante ao exemplo a seguir:
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
Você usa essa função do Azure como um manipulador de eventos para a assinatura de um tópico posteriormente neste tutorial.
Observação
Este tutorial foi testado com uma função do Azure que usa a stack de runtime .NET 8.0 (isolada).
Criar um tópico da Grade de Eventos (tópico personalizado)
Crie um tópico do Event Grid. Consulte Criar um tópico personalizado usando o portal do Azure. Ao criar o tópico Grade de Eventos, na guia Avançado, para Esquema de Eventos, selecione Esquema de Eventos na Nuvem v1.0.
Observação
Use Cloud Event Schema v1.0 em todo este tutorial.
Adicionar uma assinatura ao tópico usando a função
Nesta etapa, crie uma assinatura para o tópico Grade de Eventos usando a função do Azure criada anteriormente.
Na página Tópico da Grade de Eventos, selecione Assinaturas.
Na página Criar Assinatura de Evento , siga estas etapas:
Insira um Nome para a assinatura do evento.
Para Event Schema, selecione Cloud Event Schema 1.0.
Para Tipo de Ponto de Extremidade, selecione Função do Azure.
Em seguida, selecione Configurar um ponto de extremidade.
Na página Selecionar função do Azure , execute estas etapas:
Em Assinatura, selecione sua assinatura do Azure.
Para Grupo de recursos, selecione o grupo de recursos que tem sua função do Azure.
Para o aplicativo Função, selecione o aplicativo Funções que tem a função.
Em Slot, selecione Produção.
Em Função, selecione sua Função do Azure.
Em seguida, selecione Confirmar seleção.
Na página Criar Assinatura de Evento , selecione Criar.
Na página Subscrições de Eventos , deverá ver a subscrição que criou.
Criar namespace, clientes, espaços de tópico e associações de permissão
Siga as instruções de Guia de início rápido: publique e assine mensagens MQTT usando um namespace de grade de eventos com o portal do Azure para:
- Crie um espaço de nomes do Event Grid.
- Crie dois clientes.
- Crie um espaço de tópico.
- Crie associações de permissão de editor e assinante.
- Teste usando o aplicativo MQTTX para confirmar se os clientes são capazes de enviar e receber mensagens.
Habilitar identidade gerenciada para o namespace
Nesta seção, você habilita a identidade gerenciada atribuída ao sistema para o namespace Grade de Eventos. Em seguida, conceda à identidade a permissão de envio para o tópico personalizado Event Grid. Em seguida, ele pode encaminhar a mensagem para o tópico personalizado. Para ativá-lo, adicione a identidade gerida à função Remetente de Dados do Event Grid no tópico personalizado.
Na página Event Grid Namespace, selecione Identidade. Selecione Ativado e, em seguida, Guardar.
Navegue até o Tópico de Eventos do Event Grid para o seu tópico personalizado do Event Grid.
Selecione Controle de acesso na barra de navegação esquerda.
Na página Controlo de acesso , selecione Adicionar e, em seguida, selecione Adicionar atribuição de função.
Na página Função do assistente Adicionar atribuição de função , selecione Função Remetente de Dados da Grade de Eventos e selecione Avançar.
Em Adicionar atribuição de função, na página Membros , selecione Identidade gerenciada e escolha Selecionar membros.
Na página Selecionar identidades gerenciadas , siga estas etapas:
Selecione sua assinatura do Azure.
Em Identidade gerenciada, selecione Namespace da grade de eventos.
Selecione a identidade gerenciada que tem o mesmo nome que o namespace Grade de Eventos.
Escolha Selecionar.
Na página Adicionar atribuição de função , selecione Avançar.
Na página Rever + atribuir , reveja as definições e, em seguida, selecione Rever + atribuir.
Configurar mensagens de roteamento para a função do Azure por meio de tópico personalizado
Nesta seção, configure o roteamento para o namespace Grade de Eventos para que as mensagens recebidas sejam roteadas para o tópico personalizado que você criou.
Na página Namespace do Grid de Eventos, selecione Roteamento.
Na página Roteamento, selecione Habilitar roteamento.
Em Tipo de tópico, selecione Tópico personalizado.
Em Tópico, selecione o tópico personalizado que você criou para este tutorial.
Em Identidade gerenciada para entrega, selecione Sistema atribuído.
Selecione Aplicar.
Enviar mensagens MQTT de teste usando MQTTX
Envie mensagens MQTT de teste para o namespace e confirme se a função as recebe.
Siga as instruções de Publicar e subscrever usando a aplicação MQTTX para enviar algumas mensagens de teste para o namespace do Event Grid.
Aqui está o fluxo dos eventos ou mensagens:
O MQTTX envia mensagens para o espaço de tópico do namespace Event Grid.
As mensagens são encaminhadas para o tópico personalizado que você configurou.
As mensagens são encaminhadas para a assinatura do evento, que é a função do Azure.
Use o recurso de log para verificar se a função recebeu o evento.