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.
O Event Grid permite-lhe encaminhar as suas mensagens MQTT para serviços Azure ou webhooks para processamento adicional. Ao encaminhar estes dados, pode construir soluções de ponta a ponta que utilizam os seus dados IoT para análise, armazenamento e visualização.
Este artigo explica quando usar o encaminhamento e mostra-lhe como configurar o encaminhamento para um tema de namespace de Grade de Eventos ou para um tópico personalizado.
Quando usar o encaminhamento
Encaminhar as mensagens dos seus clientes para um serviço Azure ou para o seu endpoint personalizado ajuda-o a maximizar os benefícios destes dados. A lista seguinte descreve alguns dos muitos casos de uso desta funcionalidade:
- Análise de dados: Extraia e analise as mensagens encaminhadas dos seus clientes para otimizar a sua solução. Por exemplo, analise a telemetria das suas máquinas para prever quando agendar a manutenção antes que ocorram avarias, para evitar atrasos e danos adicionais.
- Aplicações sem servidor: Acionar uma função sem servidor com base nas mensagens encaminhadas pelos seus clientes. Por exemplo, quando um sensor de movimento detetar movimento, envie uma notificação à equipa de segurança para tratar da situação.
- Visualizações de dados: Construa visualizações dos dados encaminhados pelos seus clientes para representar e compreender os dados, bem como para destacar tendências e exceções.
Configurar roteamento
A configuração de encaminhamento permite-lhe enviar todas as suas mensagens MQTT dos seus clientes para um tópico de namespace da Grade de Eventos ou para um tópico personalizado da Grade de Eventos. Depois que as mensagens estiverem no tópico, você poderá configurar uma assinatura de evento para consumir as mensagens do tópico. Use os seguintes passos gerais para alcançar esta configuração:
- Tópico do espaço de nomes como destino de encaminhamento:
- Crie um tópico do espaço de nomes do Event Grid para onde o Event Grid encaminha todas as mensagens MQTT.
- Crie uma subscrição de evento do tipo push para encaminhar estas mensagens para um dos serviços Azure suportados ou para um webhook personalizado, ou crie uma subscrição de evento do tipo fila para puxar as mensagens diretamente do tópico do namespace através da sua aplicação.
- Defina a configuração de encaminhamento que se refira ao tópico que criou no primeiro passo.
- Tema personalizado como destino de roteamento:
- Crie um tópico personalizado para a Grade de Eventos onde a Grelha de Eventos encaminhe todas as mensagens MQTT. Este tópico precisa de cumprir os requisitos de tópicos personalizados da Grade de Eventos para o encaminhamento.
- Crie uma subscrição de evento Event Grid para encaminhar estas mensagens para um dos serviços Azure suportados ou para um endpoint personalizado.
- Defina a configuração de encaminhamento que se refira ao tópico que criou no primeiro passo.
Observação
Desativar o acesso público à rede no espaço de nomes faz com que o encaminhamento MQTT falhe.
Diferença entre tópicos de espaço de nomes e tópicos personalizados como destino de roteamento
A tabela seguinte mostra a diferença entre tópicos de espaço de nomes e tópicos personalizados como destino de roteamento. Para uma divisão detalhada das quotas e limites que cada recurso da Grade de Eventos inclui, veja Quotas e limites.
| Ponto de comparação | Tópico de namespace | Tema personalizado |
|---|---|---|
| Capacidade de processamento | Alta, até 40 MB/s (entrada) e 80 MB/s (saída) | Baixo, até 5 MB/s (entrada e saída) |
| Sistema de entrega puxada | Sim | No |
| Empurrar a entrega para os Centros de Eventos | Sim | Sim |
| Entrega push para serviços do Azure (Functions, Webhooks, filas de armazenamento, filas e tópicos do Service Bus, conexões híbridas de retransmissão) | No | Sim |
| Retenção de mensagens | 7 dias | 1 dia |
| Requisito de atribuição de funções | Não é necessário porque o broker MQTT e o tópico do namespace estão no mesmo namespace | É obrigatório porque o namespace que aloja a funcionalidade do broker MQTT e o tópico personalizado são recursos diferentes |
Requisitos de tópicos personalizados do Event Grid para encaminhamento
O tópico personalizado da Grelha de Eventos que utiliza para o encaminhamento precisa de cumprir os seguintes requisitos:
- Precisa de usar o esquema CloudEvents v1.0.
- Tem de estar na mesma região do namespace.
- Precisa de atribuir o papel de Remetente de Dados da Grelha de Eventos a si próprio ou à identidade gerida selecionada no tópico personalizado da Grelha de Eventos antes de aplicar a configuração de roteamento. Para atribuir o cargo:
- No portal, vá ao recurso tópico da Grelha de Eventos que criou.
- No menu de controlo de acesso (IAM ), selecione Adicionar atribuição de funções.
- No separador Função, selecione Event Grid Data Sender e, em seguida, selecione Seguinte.
- No separador Membros, selecione Selecionar membros, depois insira o seu nome de utilizador Microsoft Entra na caixa Selecionar que aparece (por exemplo,
user@contoso.com). - Selecione o seu nome de utilizador Microsoft Entra e depois selecione Rever + atribuir.
Configuração do portal do Azure
Para configurar o encaminhamento:
- Vá para seu namespace no portal do Azure.
- Em Encaminhamento, selecione Ativar Encaminhamento.
- Para o tipo de Tema, selecione entre o tema do Namespace ou o Tema Personalizado.
-
Para o Tópico, selecione o tópico que criou onde todas as mensagens MQTT são encaminhadas.
- Para tópicos personalizados, a lista mostra apenas os tópicos que cumprem os requisitos de tópicos personalizados do Event Grid para encaminhamento.
- Se selecionar um tópico personalizado, aparece a secção Identidade Gerida para Entrega. Selecione uma das seguintes opções para a identidade que autentica o corretor MQTT enquanto este entrega as mensagens MQTT ao tópico personalizado:
- Nenhum: Atribui a ti próprio o papel de Remetente de Dados da Grelha de Eventos no tópico personalizado.
- Identidade atribuída ao sistema: Ative a identidade atribuída ao sistema no namespace como pré-requisito e atribua o papel de Remetente de Dados da Grelha de Eventos à identidade atribuída pelo sistema no tópico personalizado.
- Identidade atribuída pelo utilizador: Ative a identidade atribuída pelo utilizador no namespace como pré-requisito e atribua o papel de Remetente de Dados da Grelha de Eventos à identidade selecionada no tópico personalizado. Se selecionar Identidade atribuída pelo utilizador, aparece um menu suspenso para que possa selecionar a identidade.
- Selecione Aplicar.
Para instruções de configuração de enriquecimento, consulte Configuração do portal de enriquecimento.
Configuração do CLI do Azure
az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --api-version 2023-06-01-preview --properties @./resources/NS.json
NS.json
{
"properties": {
"inputSchema": "CloudEventSchemaV1_0",
"topicSpacesConfiguration": {
"state": "Enabled",
"routeTopicResourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/topics/<Event Grid topic name>",
"routingIdentityInfo": {
"type": "UserAssigned",
"userAssignedIdentity": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<User-assigned identity>"
}
}
}
}
Em routingIdentityInfo, type aceita None, SystemAssigned, ou UserAssigned. Defina userAssignedIdentity apenas quando type é UserAssigned.
Para instruções de configuração de enriquecimentos, vá a configuração de enriquecimento da CLI.
Comportamento de encaminhamento de mensagens MQTT
Ao encaminhar mensagens MQTT para tópicos personalizados, o Event Grid proporciona uma entrega duradoura ao tentar entregar cada mensagem pelo menos uma vez imediatamente. Se houver uma falha, o Event Grid ou tenta a entrega novamente ou elimina a mensagem destinada ao encaminhamento. A Grade de Eventos não garante a ordem de entrega dos eventos, portanto, os assinantes podem recebê-los fora de ordem.
A tabela seguinte descreve o comportamento do encaminhamento de mensagens MQTT com base em diferentes erros.
| Erro | Descrição do erro | Comportamento |
|---|---|---|
| TópicoNãoEncontradoErro | O tópico personalizado configurado para receber todas as mensagens encaminhadas MQTT foi eliminado. | O Event Grid deixa cair a mensagem MQTT destinada ao encaminhamento. |
| AutenticationError | O papel de Remetente de Dados da Grelha de Eventos para o tópico personalizado configurado como destino para mensagens encaminhadas MQTT foi eliminado. | O Event Grid deixa cair a mensagem MQTT destinada ao encaminhamento. |
| DemasiadasSolicitações | O número de mensagens encaminhadas por MQTT por segundo excede o limite de publicação para o tópico personalizado. | O Event Grid tenta novamente encaminhar a mensagem MQTT. |
| Erro de serviço | Um erro inesperado do servidor por um motivo operacional. | O Event Grid tenta novamente encaminhar a mensagem MQTT. |
Durante as tentativas, o Event Grid utiliza uma política de tentativas com backoff exponencial para o encaminhamento de mensagens MQTT. O Event Grid tenta novamente a entrega no seguinte cronograma, com base em esforços razoáveis:
- 10 segundos
- 30 segundos
- 1 minuto
- 5 minutos
- 10 minutos
- 30 minutos
- Uma hora
- 3 horas
- 6 horas
- A cada 12 horas
Se uma mensagem MQTT encaminhada, colocada em fila para reentrega, for entregue com êxito, o Event Grid tenta remover a mensagem da fila de novas tentativas numa base de máximo esforço, mas poderá ainda receber duplicados.