Compartilhar via


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

Neste tutorial, você usará 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 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 Microsoft Fabric Real-Time Dashboard para analisar seus dados do 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 assinar um tópico MQTT e encaminhar as mensagens para um hub de eventos no namespace dos 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

Verifique se as seguintes variáveis de ambiente estão definidas no shell:

Dica

Para exibir as identidades gerenciadas atribuídas pelo usuário que você criou em seu grupo de recursos, execute o seguinte comando no shell: az identity list -g $RESOURCE_GROUP -o table

# 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>

# The name of the user-assigned managed identity that you created for cloud connections
USER_ASSIGNED_MI_NAME=<cloud-connection-uami>

Criar um namespace dos 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 true

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 identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query principalId --output tsv)

az role assignment create --role "Azure Event Hubs Data Sender" --assignee $PRINCIPAL --scope $EVENTHUBRESOURCE

Criar um fluxo de dados para enviar mensagens para um hub de eventos

Use a interface Web do usuário de operações para criar e configurar um fluxo de dados em seu cluster que:

  • Renomeia o campo temperature na mensagem de entrada para TemperatureF.
  • 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:

  1. Acesse a interface da Web de 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 pontos de extremidade do fluxo de dados.

  2. Na opção Criar ponto de extremidade de fluxo de dados: Hubs de Eventos do Azure, insira event-hubs-target como nome e encontre o namespace do Hubs de Eventos que você criou no campo Host.

  3. Selecione a identidade gerenciada atribuída pelo usuário como o método de autenticação. Adicione os valores de ID do cliente e ID do locatário da identidade gerenciada atribuída pelo usuário que você está usando para conexões de nuvem. Use o seguinte comando da CLI para listar a ID de cliente e a ID de locatário das identidades gerenciadas atribuídas a usuários em seu grupo de recursos: az identity list -g $RESOURCE_GROUP -o table.

  4. Selecione Aplicar:

    Captura de tela 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.

  5. Selecione Fluxos de dados e selecione + Criar fluxo de dados. A página <new-data-flow> exibe:

    Captura de tela da página fluxos de dados.

  6. No editor de fluxo de dados, selecione Selecionar origem. Em seguida, selecione o ativo de termostato criado anteriormente e selecione Continuar.

  7. No editor de fluxo de dados, selecione Selecionar destino. Em seguida, selecione o ponto de extremidade event-hubs-target que você criou anteriormente e selecione Continuar.

  8. 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. Selecione Aplicar. Agora, seu fluxo de dados tem o ativo termostato como sua origem e um hub no namespace dos Hubs de Eventos como seu destino.

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

  10. Para renomear o campo temperature na mensagem de entrada, selecione + Adicionar no bloco Renomear.

  11. Adicione a seguinte transformação de renomeação:

    Ponto de dados Novo nome do ponto de dados
    temperature.Value ThermostatTemperatureF
  12. Para copiar a ID do ativo dos metadados da mensagem, adicione a seguinte transformação de renomeação:

    Ponto de dados Novo nome do ponto de dados
    $metadata.user_property.externalAssetId ID do Ativo

    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.

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

    Captura de tela do fluxo de dados concluído.

  14. Para iniciar o fluxo de dados em execução, insira tutorial-data-flow como seu nome e selecione Salvar. Após alguns minutos, o Estado de Provisionamento muda para Êxito. O fluxo de dados agora está em execução no cluster.

Seu fluxo de dados assina 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 a sua instância dos Hubs de Eventos no portal do Azure. Talvez seja necessário aguardar vários minutos para que o fluxo de dados seja iniciado e 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 de entrada na página de 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 tela da página **Data Explorer** da instância dos Hubs de Eventos.

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?

Neste tutorial, você usou um fluxo de dados para conectar um tópico MQTT a um hub de eventos no namespace dos 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 quiser 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 o 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 que você criou nesse tutorial.

Próxima etapa

Tutorial: obtenha insights das mensagens do seu ativo