Partilhar via


Tutorial: Enviar telemetria de ativos para a nuvem usando um fluxo de dados

Neste tutorial, você usa um fluxo de dados para encaminhar mensagens do agente 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 armazenamento e análise. No próximo tutorial, você usa um painel em tempo real para visualizar os dados.

Pré-requisitos

Antes de começar este tutorial, você deve concluir o Tutorial: Adicionar ativos OPC UA ao cluster de Operações IoT do Azure.

Que problema vamos resolver?

Para usar uma ferramenta como o Painel em Tempo Real para analisar seus dados OPC UA, você precisa enviar os dados para um serviço de nuvem, como os Hubs de Eventos do Azure. Um fluxo de dados pode se inscrever em um tópico MQTT e encaminhar as mensagens para um hub de eventos em seu namespace de Hubs de Eventos do Azure. O próximo tutorial mostra como usar painéis em tempo real para visualizar e analisar seus dados.

Definir as variáveis de ambiente

Se você estiver usando o ambiente 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 espaço de nomes dos Hubs de Eventos

Para criar um namespace de Hubs de Eventos e um hub de eventos, execute os seguintes comandos da CLI do Azure em seu shell. Esses comandos criam o namespace Hubs de Eventos no mesmo grupo de recursos do 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 à extensão Operações IoT do Azure em seu cluster acesso ao namespace Hubs de Eventos, 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 em seu cluster que:

  • Renomeia o Tag 10 campo na mensagem de entrada para Humidity.
  • Renomeia o temperature campo na mensagem de entrada para Temperature.
  • 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 que você criou.

Para criar o fluxo de dados:

  1. Navegue até a interface do usuário da experiência de operações e localize sua instância. Em seguida, selecione Pontos de extremidade de fluxo de dados e selecione + Novo no bloco Hubs de Eventos do Azure:

    Captura de tela da página de pontos de extremidade Dataflow.

  2. Em Criar novo ponto de extremidade de fluxo de dados: Hubs de Eventos do Azure, insira event-hubs-target como o nome e atualize o campo Host com o endereço do namespace de Hubs de Eventos que você criou. Selecione Aplicar:

    Captura de ecrã da página Criar novo ponto de extremidade de fluxo de dados: Hubs de Eventos do Azure.

    Seu novo ponto de extremidade de fluxo de dados é criado e exibido na lista na página Pontos de extremidade de fluxo de dados.

  3. Selecione Fluxos de dados e, em seguida, selecione + Criar fluxo de dados. A <página new-dataflow> exibe:

    Captura de tela da página Fluxos de dados.

  4. No editor de fluxo de dados, selecione Selecionar fonte. Em seguida, selecione o ativo de termostato que você criou anteriormente e selecione Aplicar.

  5. No editor de fluxo de dados, selecione Selecionar ponto de extremidade de fluxo de dados. Em seguida, selecione o ponto de extremidade de destino de hubs de eventos que você criou anteriormente e selecione Aplicar.

  6. Na página seguinte, digite destinationeh como o tópico. O tópico refere-se ao hub criado no namespace Hubs de Eventos. Selecione Aplicar. Seu fluxo de dados agora tem o ativo termostato como origem e um hub no namespace Hubs de Eventos como destino.

  7. Para adicionar uma transformação, selecione Adicionar transformação (opcional).

  8. Para renomear os Tag 10 campos e temperature na mensagem de entrada, selecione + Adicionar no bloco Renomear .

  9. Adicione as duas transformações de renomeação a seguir:

    Ponto de dados Novo nome de ponto de dados
    Etiqueta 10.Value TermostatoHumidade
    temperatura. Valor TermostatoTemperatura
  10. Para copiar o ID do ativo dos metadados da mensagem, adicione a seguinte transformação de renomeação:

    Ponto de dados Novo nome de ponto de dados
    $metadata.user_property.externalAssetId AssetId

    A transformação de renomeação se parece com a seguinte captura de tela:

    Captura de tela da transformação de renomeação.

    Selecione Aplicar.

  11. O editor de fluxo de dados agora se parece com a seguinte captura de tela:

    Captura de tela do fluxo de dados concluído.

  12. Para iniciar a execução do fluxo de dados, insira tutorial-dataflow como seu nome e selecione Salvar. Após alguns minutos, o Estado de provisionamento muda para Succeeded. O fluxo de dados agora está em execução no cluster.

Seu fluxo de dados se inscreve em um tópico MQTT para receber mensagens do ativo 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 sua instância de Hubs de Eventos no portal do Azure. Talvez seja necessário aguardar alguns minutos para que o fluxo de dados seja iniciado e para que as mensagens fluam para o hub de eventos.

Se as mensagens estiverem fluindo para a instância, você poderá ver a contagem de mensagens recebidas na página Visão geral da instância:

Captura de tela que mostra a página de visão geral da instância dos Hubs de Eventos com mensagens de entrada.

Se as mensagens estiverem fluindo, você poderá usar o Data Explorer para exibir as mensagens:

Captura de ecrã da página **Data Explorer** da instância dos Hubs de Eventos.

Gorjeta

Talvez seja necessário atribuir a si mesmo a função Recetor de Dados dos Hubs de Eventos do Azure para o namespace Hubs de Eventos para exibir as mensagens.

Como resolvemos o problema?

Neste tutorial, você usou um fluxo de dados para conectar um tópico MQTT a um hub de eventos em seu namespace de Hubs de Eventos do Azure. No próximo tutorial, você usa o Microsoft Fabric Real-Time Intelligence para visualizar os dados.

Clean up resources (Limpar recursos)

Se você continuar para o próximo tutorial, mantenha todos os seus recursos.

Se você quiser remover a implantação do Azure IoT Operations mas manter 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 onde você implantou as Operações do Azure IoT e, em seguida, remova o grupo de recursos do Azure que continha o cluster.

Se você usou Codespaces para esses inícios rápidos, exclua seu Codespace do GitHub.

Nota

O grupo de recursos contém o namespace Hubs de Eventos criado neste tutorial.

Próximo passo

Tutorial: Obtenha informações da telemetria de ativos