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 enriquecimento de mensagens é a capacidade do Hub IoT do Azure de carimbar mensagens com informações adicionais antes que elas sejam enviadas para o ponto de extremidade designado. Uma razão para usar o enriquecimento de mensagens é incluir dados que podem ser usados para simplificar o processamento a jusante. Por exemplo, enriquecer mensagens de dispositivo com uma tag de gémeo de dispositivo pode reduzir a carga sobre os clientes ao fazerem chamadas de API de gémeo de dispositivo para obter essas informações. Para obter mais informações, consulte Visão geral do enriquecimento de mensagens.
Na primeira parte deste tutorial, você viu como criar pontos de extremidade personalizados e rotear mensagens para outros serviços do Azure. Neste tutorial, você verá como criar e configurar os recursos extras necessários para testar o enriquecimento de mensagens para um hub IoT. Os recursos incluem um segundo contêiner de armazenamento para uma conta de armazenamento existente (criada na primeira parte do tutorial) para armazenar as mensagens enriquecidas e uma rota de mensagem para enviá-las para lá. Depois que as configurações para o roteamento de mensagens e enriquecimento de mensagens forem concluídas, você usará um aplicativo para enviar mensagens para o hub IoT. Em seguida, o hub os encaminha para ambos os contêineres de armazenamento. Somente as mensagens enviadas para o ponto de extremidade do contentor de armazenamento enriquecido são enriquecidas.
Neste tutorial, vai realizar as seguintes tarefas:
- Crie um segundo contêiner em sua conta de armazenamento.
- Crie outro ponto de extremidade personalizado e roteie mensagens para ele a partir do hub IoT.
- Configure enriquecimentos de mensagens que são encaminhados para o novo endpoint.
- Execute um aplicativo que simule um dispositivo IoT enviando mensagens para o hub.
- Exiba os resultados e verifique se os enriquecimentos de mensagem estão sendo aplicados às mensagens de destino.
Pré-requisitos
Precisa de uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Você deve ter concluído o Tutorial: Enviar dados do dispositivo para o Armazenamento do Azure usando o roteamento de mensagens do Hub IoT e mantido os recursos criados para ele.
Verifique se a porta 8883 está aberta no firewall. O exemplo de dispositivo neste tutorial usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta pode estar bloqueada em alguns ambientes de rede corporativa e educacional. Para obter mais informações e maneiras de contornar esse problema, consulte Conectando-se ao Hub IoT (MQTT).
Não há outros pré-requisitos para o portal do Azure.
Criar um segundo contêiner em sua conta de armazenamento
Na primeira parte deste tutorial, você criou uma conta de armazenamento e um contêiner para mensagens roteadas. Agora você deve criar um segundo contêiner para mensagens enriquecidas.
No portal do Azure, procure contas de armazenamento.
Selecione a conta que criou anteriormente.
No menu da conta de armazenamento, selecione Contêineres na seção Armazenamento de dados.
Selecione Contêiner para criar o novo contêiner.
Nomeie o contêiner
enrichede selecione Criar.
Encaminhar mensagens para um segundo endpoint
Crie uma segunda interface e rota para as mensagens enriquecidas.
Importante
Este artigo inclui etapas para se conectar a um serviço usando uma assinatura de acesso compartilhado. Esse método de autenticação é conveniente para teste e avaliação, mas autenticar em um serviço com ID do Microsoft Entra ou identidades gerenciadas é uma abordagem mais segura. Para saber mais, consulte Práticas recomendadas de segurança para soluções > de IoT Segurança na nuvem.
No portal Azure, vá para o seu hub IoT.
No menu de recursos em Configurações do Hub, selecione Roteamento de mensagens e, em seguida, selecione Adicionar.
Na guia Ponto de extremidade, crie um ponto de extremidade de armazenamento fornecendo as seguintes informações:
Parâmetro Valor Tipo de ponto final Selecione Armazenamento. Nome do ponto final Introduza ContosoStorageEndpointEnriched.Contêiner de armazenamento do Azure Selecione Escolher um contêiner. Siga as instruções para selecionar a conta de armazenamento e o contêiner enriquecido que você criou na seção anterior. Codificação Selecione JSON. Se este campo estiver acinzentado, a região da sua conta de armazenamento não suporta JSON. Nesse caso, continue com o AVRO padrão.
Aceite os valores padrão para o restante dos parâmetros e selecione Criar + próximo.
Continue a criar a nova rota, agora que adicionaste o endpoint de armazenamento. Forneça as seguintes informações para a nova rota:
Parâmetro Valor Nome ContosoStorageRouteEnriquecido Origem de dados Verifique se Mensagens de Telemetria de Dispositivo está selecionado na lista suspensa. Ativar rota Verifique se este campo está definido como enabled.Consulta de roteamento Insira level="storage"como a cadeia de caracteres de consulta.
Selecione Criar + adicionar enriquecimentos.
Adicione enriquecimento de mensagem ao novo ponto de extremidade
Crie três enriquecimentos de mensagem que serão roteados para o contêiner de armazenamento enriquecido .
Na guia "Enriquecimento" do assistente "Adicionar uma rota", adicione três enriquecimentos de mensagem para as mensagens que vão para o endpoint do contentor de armazenamento chamado enriquecido.
Adicione estes valores como enriquecimentos de mensagens para o ponto de extremidade ContosoStorageEndpointEnriched.
Nome Valor myIotHub $hubnameLocalização do dispositivo $twin.tags.location(assume que o gémeo do dispositivo tem uma etiqueta de localização)ID do cliente 6ce345b8-1e4a-411e-9398-d34587459a3aQuando terminar, os seus enriquecimentos deverão ser semelhantes a esta imagem:
Selecione Adicionar para adicionar o enriquecimento da mensagem.
Agora tens o enriquecimento de mensagens definido para todas as mensagens redirecionadas para o ponto de extremidade que criaste para mensagens enriquecidas. Se não quiser adicionar uma etiqueta de localização ao dispositivo gemelar, pode saltar para a secção Enriquecimento de mensagens para continuar o tutorial.
Adicionar etiqueta de localização ao gémeo do dispositivo
Um dos enriquecimentos de mensagem configurados no seu hub IoT especifica uma chave de DeviceLocation com o seu valor determinado pelo seguinte caminho do gémeo do dispositivo: $twin.tags.location. Se o gémeo digital do seu dispositivo não tiver uma etiqueta de localização, o caminho do gémeo digital, $twin.tags.locationserá marcado como uma string para a chave DeviceLocation nos enriquecimentos da mensagem.
Siga estes passos para adicionar uma etiqueta de localização ao gémeo do seu dispositivo:
Navegue até seu hub IoT no portal do Azure.
Selecione Dispositivos no menu de navegação do hub IoT e, em seguida, selecione o dispositivo.
Selecione o separador Gêmeo de Dispositivo no topo da página do dispositivo e adicione a seguinte linha logo antes da chave de encerramento na parte inferior do Gêmeo de Dispositivo. Em seguida, selecione Guardar.
, "tags": {"location": "Plant 43"}
Gorjeta
Aguarde cerca de cinco minutos antes de continuar para a próxima seção. Pode levar até esse tempo para que as atualizações do gêmeo do dispositivo sejam refletidas nos valores de enriquecimento da mensagem.
Para saber mais sobre como os caminhos gêmeos de dispositivo são tratados com enriquecimento de mensagens, consulte Limitações de enriquecimento de mensagens. Para saber mais sobre gêmeos de dispositivo, consulte Compreender e usar gêmeos de dispositivo no Hub IoT.
Enriquecimento de mensagens de teste
Agora que os enriquecimentos de mensagens estão configurados para o ContosoStorageEndpointEnriquecido, execute o aplicativo de dispositivo simulado para enviar mensagens para o IoT Hub. Neste ponto, o roteamento de mensagens foi configurado da seguinte maneira:
As mensagens encaminhadas para o ponto de extremidade de armazenamento que criou na primeira parte do tutorial não serão enriquecidas e serão armazenadas no contêiner de armazenamento que criou então.
As mensagens encaminhadas para o ponto de extremidade de armazenamento ContosoStorageEndpointEnriched serão enriquecidas e armazenadas no contentor de armazenamento enriched.
Se você ainda não estiver executando o aplicativo de console SimulatedDevice na primeira parte deste tutorial, execute-o novamente:
Gorjeta
Se você estiver seguindo as etapas da CLI do Azure para este tutorial, execute o código de exemplo em uma sessão separada. Dessa forma, você pode permitir que o código de exemplo continue em execução enquanto segue o restante das etapas da CLI.
Na pasta de exemplo, navegue até a
/iot-hub/Tutorials/Routing/SimulatedDevice/pasta.As definições de variáveis que você atualizou antes ainda devem ser válidas, mas, se não, edite-as
Program.csno arquivo:Encontre as definições de variáveis na parte superior da classe Program . Atualize as seguintes variáveis com suas próprias informações:
- s_myDeviceId: O ID do dispositivo que você atribuiu ao registrar o dispositivo no hub IoT.
-
s_iotHubUri: O nome do host do seu hub IoT, que assume o formato
IOTHUB_NAME.azure-devices.net. - s_deviceKey: A chave primária do dispositivo encontrada nas informações de identidade do dispositivo.
Guarde e feche o ficheiro.
Execute o código de exemplo:
dotnet run
Depois de deixar o aplicativo de console para ser executado por alguns minutos, visualize os dados:
No portal do Azure, navegue para a sua conta de armazenamento.
Selecione Navegador de armazenamento no menu de navegação. Selecione Contêineres de Blob para ver os dois contêineres que você criou ao longo destes tutoriais.
As mensagens no contêiner chamado enriquecido têm os enriquecimentos de mensagem incluídos nas mensagens. As mensagens no contentor que criou anteriormente são mensagens sem processamento, sem qualquer enriquecimento. Analise detalhadamente o contêiner enriquecido até chegar à parte inferior e, em seguida, abra o arquivo de mensagem mais recente. Em seguida, faça o mesmo para o outro recipiente para verificar se um está enriquecido e outro não.
Quando olhas para as mensagens que foram enriquecidas, deverás ver "myIotHub" com o nome do hub, a localização e o ID do cliente, tal como isto:
{
"EnqueuedTimeUtc":"2019-05-10T06:06:32.7220000Z",
"Properties":
{
"level":"storage",
"myIotHub":"{your hub name}",
"DeviceLocation":"Plant 43",
"customerID":"6ce345b8-1e4a-411e-9398-d34587459a3a"
},
"SystemProperties":
{
"connectionDeviceId":"Contoso-Test-Device",
"connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"connectionDeviceGenerationId":"636930642531278483",
"enqueuedTime":"2019-05-10T06:06:32.7220000Z"
},"Body":"eyJkZXZpY2VJZCI6IkNvbnRvc28tVGVzdC1EZXZpY2UiLCJ0ZW1wZXJhdHVyZSI6MjkuMjMyMDE2ODQ4MDQyNjE1LCJodW1pZGl0eSI6NjQuMzA1MzQ5NjkyODQ0NDg3LCJwb2ludEluZm8iOiJUaGlzIGlzIGEgc3RvcmFnZSBtZXNzYWdlLiJ9"
}
Limpar recursos
Para remover todos os recursos criados em ambas as partes deste tutorial, exclua o grupo de recursos. Esta ação também elimina todos os recursos contidos no grupo. Se não quiser excluir todo o grupo de recursos, selecione recursos individuais para excluir.
- No portal do Azure, navegue até o grupo de recursos que contém o hub IoT e a conta de armazenamento para este tutorial.
- Revise todos os recursos que estão no grupo de recursos para determinar quais você deseja limpar.
- Se quiser excluir todo o recurso, selecione Excluir grupo de recursos.
- Se você quiser excluir apenas determinados recursos, use as caixas de seleção ao lado de cada nome de recurso para selecionar os que deseja excluir. Em seguida, selecione Eliminar.
Próximos passos
Neste tutorial, configuraste e testaste enriquecimentos de mensagens para mensagens do Hub IoT à medida que são encaminhadas para um destino.
Para obter mais informações sobre enriquecimento de mensagens, consulte Visão geral de enriquecimento de mensagens.
Para saber mais sobre o Hub IoT, continue para o próximo tutorial.