Tutorial: Enviar telemetria de ativos para a nuvem usando um fluxo de dados
Nesse tutorial, você usa um fluxo de dados para encaminhar mensagens do broker MQTT para um hub de eventos no serviço Hubs de Eventos do Azure. O hub de eventos pode fornecer os dados para outros serviços de nuvem para fins de armazenamento e análise. No próximo tutorial, você usará um painel em tempo real para visualizar os dados.
Pré-requisitos
Antes de começar esse tutorial, você deve concluir o Tutorial: Adicionar ativos OPC UA ao seu cluster das Operações do Azure IoT.
Que problema vamos resolver?
Para usar uma ferramenta como o Painel de Controle em Tempo Real para analisar os dados de OPC UA, você precisa enviar os dados para um serviço de nuvem, como o Hubs de Eventos do Azure. Um fluxo de dados pode fazer uma assinatura de um tópico MQTT e encaminhar as mensagens para um hub de eventos no seu namespace do Hubs de Eventos do Azure. O próximo tutorial mostra como usar painéis em tempo real para visualizar e analisar seus dados.
Definir variáveis de ambiente
Se você estiver usando o ambiente do Codespaces, as variáveis de ambiente necessárias já estão definidas e você pode ignorar esta etapa. Caso contrário, defina as seguintes variáveis de ambiente em seu shell:
# The name of the resource group where your Kubernetes cluster is deployed
RESOURCE_GROUP=<resource-group-name>
# The name of your Kubernetes cluster
CLUSTER_NAME=<kubernetes-cluster-name>
Criar um namespace de Hubs de Eventos
Para criar um namespace dos Hubs de Eventos e um hub de eventos, execute os seguintes comandos da CLI do Azure em seu shell. Esses comandos criam o namespace do Hubs de Eventos no mesmo grupo de recursos do seu cluster do Kubernetes:
az eventhubs namespace create --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP --disable-local-auth false
az eventhubs eventhub create --name destinationeh --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --retention-time 1 --partition-count 1 --cleanup-policy Delete
Para conceder ao seu namespace do Hubs de Eventos acesso à extensão do Operações IoT do Azure no seu cluster, execute os seguintes comandos da CLI do Azure:
EVENTHUBRESOURCE=$(az eventhubs namespace show --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --query id -o tsv)
PRINCIPAL=$(az k8s-extension list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type connectedClusters -o tsv --query "[?extensionType=='microsoft.iotoperations'].identity.principalId")
az role assignment create --role "Azure Event Hubs Data Sender" --assignee $PRINCIPAL --scope $EVENTHUBRESOURCE
Criar um fluxo de dados para enviar telemetria para um hub de eventos
Use a interface do usuário da experiência de operações para criar e configurar um fluxo de dados no seu cluster que:
- Renomeia o campo
Tag 10
na mensagem de entrada paraHumidity
. - Renomeia o campo
temperature
na mensagem de entrada paraTemperature
. - Adiciona um campo chamado
AssetId
que contém o nome do ativo. - Encaminha as mensagens transformadas do tópico MQTT para o hub de eventos criado por você.
Para criar o fluxo de dados:
Navegue até a interface de usuário da experiência de operações e localize sua instância. Em seguida, selecione Pontos de extremidade do fluxo de dados e selecione + Novo no bloco Hubs de Eventos do Azure:
Em Criar novo ponto de extremidade de fluxo de dados: Azure Event Hubs, insira event-hubs-target como o nome e atualize o campo Host com o endereço do namespace dos Hubs de Eventos do Azure que você criou. Selecione Aplicar:
Seu novo ponto de extremidade de fluxo de dados é criado e exibido na lista na página Pontos de extremidade de fluxo de dados.
Selecione Fluxos de dados e depois selecione + Criar fluxo de dados. A página <new-dataflow> exibe:
No editor de fluxo de dados, selecione Selecionar fonte. Em seguida, selecione o ativo do termostato que você criou anteriormente e selecione Aplicar.
No editor de fluxo de dados, selecione Selecionar ponto de extremidade do fluxo de dados. Em seguida, selecione o ponto de extremidade event-hubs-target que você criou anteriormente e selecione Aplicar.
Na próxima página, digite destinationeh como tópico. O tópico se refere ao hub que você criou no namespace Hubs de Eventos do Azure. Escolha Aplicar. Seu fluxo de dados agora tem o ativo do termostato como origem e um hub no namespace do Hubs de Eventos do Azure como destino.
Para adicionar uma transformação, selecione Adicionar transformação (opcional).
Para renomear os campos
Tag 10
etemperature
na mensagem recebida, selecione + Adicionar no bloco Renomear.Adicione as duas transformações de renomeação a seguir:
Datapoint Novo nome do ponto de dados Marca 10.Value ThermostatHumidity temperature.Value ThermostatTemperature Para copiar a ID de ativo dos metadados da mensagem, adicione a seguinte transformação de renomeação:
Datapoint Novo nome do ponto de dados $metadata.user_property.externalAssetId AssetId A transformação de renomeação se parece com a seguinte captura de tela:
Escolha Aplicar.
O editor de fluxo de dados agora se parece com a seguinte captura de tela:
Para iniciar a execução do fluxo de dados, digite tutorial-dataflow como seu nome e selecioneSalvar. Após alguns minutos, o Estado de Provisionamento muda para Êxito. O fluxo de dados agora está em execução no seu cluster.
Seu fluxo de dados assina um tópico MQTT para receber mensagens do ativo do termostato. Ele renomeia alguns dos campos na mensagem e encaminha as mensagens transformadas para o hub de eventos que você criou.
Verificar se os dados estão fluindo
Para verificar se os dados estão fluindo para a nuvem, você pode exibir a sua instância dos Hubs de Eventos no portal do Azure. Pode ser necessário aguardar vários minutos para que o fluxo de dados seja iniciado e as mensagens cheguem ao hub de eventos.
Se as mensagens estiverem fluindo para a instância, você poderá ver a contagem de mensagens de entrada na página de visão geral da instância:
Se as mensagens estiverem fluindo, você poderá usar o Data Explorer para exibir as mensagens:
Dica
Talvez seja necessário atribuir-se à função Receptor de dados dos Hubs de Eventos do Azure para que o namespace dos Hubs de Eventos exiba as mensagens.
Como resolvemos o problema?
Nesse tutorial, você usou um fluxo de dados para conectar um tópico MQTT a um hub de eventos no seu namespace do Hubs de Eventos do Azure. No próximo tutorial, você usará o Microsoft Fabric Real-Time Intelligence para visualizar os dados.
Limpar os recursos
Se você continuar para o próximo tutorial, mantenha todos os seus recursos.
Se você quiser remover a implantação das Operações do Azure IoT, mas manter o seu cluster, use o comando az iot ops delete:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Se você quiser excluir todos os recursos criados para este início rápido, exclua o cluster do Kubernetes no qual você implantou as Operações do Azure IoT e remova o grupo de recursos do Azure que continha o cluster.
Se você usou os Codespaces para esses inícios rápidos, exclua seu Codespace do GitHub.
Observação
O grupo de recursos contém o namespace Hubs de Eventos do Azure que você criou nesse tutorial.