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. Assim, você pode criar soluções de ponta a ponta usando seus dados de IoT para análise, armazenamento e visualizações de dados, entre outros casos de uso.
Como posso usar a funcionalidade de roteamento?
Encaminhar as mensagens dos seus clientes para um serviço Azure ou para o seu endpoint personalizado permite-lhe maximizar os benefícios destes dados. Seguem-se alguns dos muitos casos de uso para tirar partido 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 falhas, evitando atrasos e danos adicionais.
- Aplicações sem servidor: ativar uma função sem servidor com base nas mensagens encaminhadas pelos seus clientes. Por exemplo, quando um sensor de movimento detetar um movimento, envie uma notificação ao pessoal de segurança para o resolver.
- Visualizações de Dados: construa visualizações dos dados encaminhados dos seus clientes para representar e compreender facilmente os dados, bem como destacar tendências e valores fora do comum.
Configuração de 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 Grelha de Eventos. Depois de as mensagens estarem no tópico, pode configurar uma subscrição 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 de namespace de Grelha de Eventos onde todas as mensagens MQTT sejam encaminhadas.
- Crie uma subscrição de evento do tipo push para encaminhar estas mensagens para um dos serviços suportados pela Azure ou para webhooks personalizados ou uma subscrição de evento do tipo fila para extrair as mensagens diretamente do tópico de namespace através da sua aplicação.
- Defina a configuração de encaminhamento com base no tópico que criou no primeiro passo.
- Tema personalizado como destino de roteamento:
- Crie um tópico personalizado para a Grelha de Eventos onde todas as mensagens MQTT sejam encaminhadas. Este tópico precisa de cumprir os requisitos de tópicos personalizados da Grelha 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 com base no tópico que criou no primeiro passo.
Observação
Desativar o acesso à rede pública no namespace fará 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 incluídos em cada recurso da Grelha de Eventos, consulte 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 | |
| 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) | Sim | |
| Retenção de mensagens | 7 dias | 1 dia |
| Requisito de atribuição de funções | Não é necessário, pois o broker MQTT e o tópico do namespace estão no mesmo namespace | É obrigatório, pois 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 utilizado para o encaminhamento precisa de cumprir os seguintes requisitos:
- Tem de ser configurado para usar o Cloud Event Schema v1.0
- Tem de estar na mesma região do namespace.
- Deve atribuir a função "Event Grid Data Sender" a si mesmo ou à identidade gerida selecionada no tópico personalizado do Event Grid antes que a configuração de encaminhamento seja aplicada.
- No portal, aceda ao recurso de tópico da Event Grid que foi criado.
- No item do menu "Controlo de Acesso (IAM)", selecione Adicionar uma atribuição de funções.
- No separador "Função", selecione "Remetente de Dados da Grelha de Eventos" e depois selecione Próximo.
- No separador "Membros", selecione +Select membros, depois escreva o seu nome de utilizador AD na caixa "Select" que aparece (por exemplo, user@contoso.com).
- Selecione o nome de utilizador do seu AD e depois selecione "Analisar + atribuir"
Configuração do portal do Azure
Use os seguintes passos para configurar o encaminhamento:
- Vá para seu namespace no portal do Azure.
- Em Encaminhamento, marque Ativar Encaminhamento.
- Em tipo de tema, selecione tema de espaço de nomes ou tópico personalizado
- No 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 da Grelha de Eventos para encaminhamento
- Se foi selecionado um tema personalizado, aparece a secção Identidade Gerida para Entrega. Selecione uma das seguintes opções para a identidade usada para autenticar o corretor MQTT ao entregar as mensagens MQTT ao tópico personalizado:
- Nenhum: neste caso, tens de atribuir a ti próprio a função "Event Grid Data Sender" no tópico personalizado.
- Identidade atribuída ao sistema: neste caso, é necessário ativar a identidade atribuída ao sistema no namespace como pré-requisito e atribuir o papel "EventGrid Data Sender" à identidade atribuída pelo sistema no tópico personalizado.
- Identidade atribuída pelo utilizador: neste caso, é necessário ativar a identidade atribuída pelo utilizador no namespace como pré-requisito e atribuir o papel "EventGrid Data Sender" à identidade selecionada no tópico personalizado.
- Se a identidade atribuída pelo usuário for selecionada, aparece um menu suspenso onde pode selecionar a identidade desejada.
- Selecione Aplicar.
Para instruções de configuração de enriquecimento, consulte Configuração do portal de enriquecimento.
Configuração do Azure CLI
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", //Allowed values: None, SystemAssigned, UserAssigned
"userAssignedIdentity": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<User-assigned identity>" //needed only if UserAssigned was the value of type
},
}
}
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 deixa cair a mensagem que deveria ser encaminhada. 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 que deveria ser encaminhada. |
| 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 que deveria ser encaminhada. |
| 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 que estava na fila para reentrega tiver sucesso, a Event Grid tenta remover a mensagem da fila de retentativa com base no melhor esforço, mas ainda podem ser recebidas duplicatas.
Passos seguintes:
Use os seguintes artigos para saber mais sobre roteamento:
Início rápido:
- Tutorial: Encaminhar mensagens MQTT para Hubs de Eventos do Azure usando tópicos de namespace
- Tutorial: Encaminhar mensagens MQTT para o Azure Functions usando tópicos personalizados