Partilhar via


Ordenar eventos de ligação do dispositivo do Hub IoT com o Azure Cosmos DB

A Grade de Eventos do Azure ajuda você a criar aplicativos baseados em eventos e integra facilmente eventos de IoT em suas soluções de negócios. Este artigo orienta você por uma configuração usando o Cosmos DB, o Logic App, os Eventos do Hub IoT e um Raspberry Pi simulado para coletar e armazenar eventos de conexão e desconexão de um dispositivo.

A partir do momento em que o dispositivo é executado, uma ordem de operações é ativada:

  1. O dispositivo Pi, usando sua chave de dispositivo do hub IoT, é iniciado e, em seguida, interrompido

  2. Um evento do Hub IoT captura a atividade do dispositivo e, em seguida, envia uma solicitação HTTP para seu Aplicativo Lógico

  3. O Aplicativo Lógico processa a solicitação HTTP com base em uma condição definida

  4. O Aplicativo Lógico registra eventos de conexão ou desconexão em um novo documento no Cosmos DB

    Captura de ecrã da configuração que iremos criar para este artigo. Esta configuração mostra como todos os serviços e dispositivos estão conectados.

Pré-requisitos

Criar uma aplicação lógica

Vamos criar um aplicativo lógico e adicionar um gatilho de Grade de Eventos que monitora o grupo de recursos para sua máquina virtual.

Criar um recurso de aplicação lógica

  1. No portal do Azure, selecione +Criar um recurso, selecione Integração e, em seguida, Aplicativo lógico.

    Captura de ecrã de como localizar e selecionar uma aplicação lógica no portal do Azure.

  2. Preencha o formulário para criar um novo aplicativo lógico que inclui:

    • a sua subscrição

    • O seu grupo de recursos (ou crie um novo)

    • Um nome de Aplicativo Lógico exclusivo na sua assinatura

    • A região do seu hub IoT

    • Um não para habilitar a análise de log

    • Um tipo de plano de Consumo

      Nota

      O tipo de plano de consumo é a opção que habilita o designer de aplicativo lógico na interface do usuário. Se você escolher Standard (o padrão), deverá criar um novo fluxo de trabalho para que o designer do aplicativo Logic fique disponível.

    Captura de ecrã de como criar uma aplicação lógica no portal do Azure.

  3. Selecione Rever + Criar para rever a sua configuração e, em seguida, selecione Criar para criar a aplicação lógica.

  4. Acabou de criar um recurso do Azure para a aplicação lógica. Depois que o Azure implantar seu aplicativo lógico, selecione Ir para recurso. O designer de aplicativo lógico mostra modelos para padrões comuns para que você possa começar mais rapidamente.

  5. No designer de aplicativo lógico, role até ver a seção Modelos e escolha Aplicativo lógico em branco para que você possa criar seu aplicativo lógico do zero.

Selecionar um acionador

Um acionador é um evento específico que inicia a sua aplicação lógica. Neste tutorial, o acionador que desencadeia o fluxo de trabalho está a receber um pedido através de HTTP.

  1. Na barra de pesquisa de conectores e gatilhos, digite HTTP e pressione Enter.

  2. Selecione a solicitação Quando uma solicitação HTTP for recebida como o gatilho.

    Captura de tela de como encontrar o gatilho de solicitação HTTP selecionado.

  3. Selecione Utilize a amostra de payload para gerar o esquema.

    Captura de tela de como usar uma carga útil de exemplo para gerar um esquema.

  4. Cole o seguinte código JSON de exemplo na caixa de texto e selecione Concluído.

    Esse JSON é usado apenas como um modelo, portanto, os valores exatos não são importantes.

    [{
     "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd",
     "topic":
       "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB",
     "subject": "devices/Demo-Device-1",
     "eventType": "Microsoft.Devices.DeviceConnected",
     "eventTime": "2018-07-03T23:20:11.6921933+00:00",
     "data": {
       "deviceConnectionStateEventInfo": {
         "sequenceNumber":
           "000000000000000001D4132452F67CE200000002000000000000000000000001"
       },
       "hubName": "MYIOTHUB",
       "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e",
       "moduleId": ""
     },
     "dataVersion": "1",
     "metadataVersion": "1"
    }]
    

    Captura de tela da carga JSON de exemplo colada na caixa de texto no Azure.

Criar uma condição

As condições ajudam a executar ações específicas depois de passar por essa condição específica. Para este artigo, a condição é verificar se eventType está conectado ou dispositivo desconectado. A ação executada quando esse eventType é true é a criação de um documento no Azure Cosmos DB. Essa condição é criada no designer de aplicativo lógico.

  1. Selecione + Nova etapa, em seguida, a guia Built-in e, em seguida, localize e selecione o controle chamado Condição.

  2. Na sua condição, altere E para Ou, pois queremos capturar eventos de conexão ou eventos de desconexão em uma única análise.

  3. Selecione dentro da caixa Escolha um valor e um pop-up aparece, mostrando o conteúdo dinâmico — os campos que podem ser selecionados.

    • Escolha eventType. O pop-up fecha e você vê Corpo é colocado em Selecione uma saída das etapas anteriores, automaticamente. Selecione Condição para reabrir sua instrução condicional.

    • Mantenha o é igual ao valor.

    • Digite Microsoft.Devices.DeviceConnected como o último valor dessa linha.

    • Selecione + Adicionar para adicionar outra linha.

    • Esta segunda linha é semelhante à primeira linha, exceto que procuramos eventos de desconexão.

      Use eventType, é igual a e Microsoft.Devices.DeviceDisconnected para os valores de linha.

      Captura de tela da íntegra Para cada condição.

  4. Na caixa de diálogo if true, clique em Adicionar uma ação.

    Captura de ecrã da caixa 'Se verdadeiro' no Azure.

  5. Procure o Cosmos DB e selecione Azure Cosmos DB — Criar ou atualizar documento (V3)

    Captura de ecrã da pesquisa do Azure Cosmos DB.

  6. Você verá o painel Criar ou atualizar documento (V3). Insira estes valores para os campos:

    Nome da conta do Azure Cosmos DB: {Adicionar o nome da sua conta}

    ID do banco de dados: ToDoList

    ID da coleção: Itens

    Documento: Escolha Current item na lista de parâmetros de conteúdo dinâmico

    A captura de tela mostra um item Executar procedimento armazenado (V3) com 'Adicionar novo parâmetro' selecionado.

  7. Guarde a sua aplicação lógica.

Copiar o URL de HTTP

Antes de sair do Designer de Aplicativos Lógicos, copie a URL que seu aplicativo lógico está escutando para um gatilho. Este URL é utilizado para configurar o Event Grid.

  1. Expanda a caixa de configuração de gatilho Quando uma solicitação HTTP for recebida selecionando-a.

  2. Copie o valor de URL do HTTP POST ao selecionar o botão para copiar junto do mesmo.

    Captura de ecrã de onde encontrar o URL HTTP a copiar.

  3. Salve este URL para que você possa usá-lo na próxima seção.

Configurar a subscrição de eventos do Hub IoT

Nesta secção, vai configurar o Hub IoT para publicar eventos à medida que estes ocorrem.

  1. No portal do Azure, navegue para o seu hub IoT.

  2. Selecione Eventos.

    Captura de tela de onde o botão Eventos está localizado no menu Hub IoT.

  3. Selecione + Subscrição de eventos.

    Criar nova subscrição de evento

  4. Preencha os Detalhes da Assinatura do Evento: forneça um Nome descritivo e selecione Esquema da Grade de Eventos como o Esquema do Evento.

  5. Crie um Nome de Tópico do Sistema para seu recurso de hub IoT.

  6. Preencha os campos Tipos de Eventos . Na lista suspensa, selecione apenas Dispositivo conectado e Dispositivo desconectado no menu. Clique em qualquer outro lugar na tela para fechar a lista e salvar suas seleções.

    Definir tipos de eventos a procurar

  7. Para Detalhes do ponto final, selecione Tipo de ponto de extremidade como gancho da Web e clique em selecionar ponto de extremidade e cole o URL que você copiou do seu aplicativo lógico e confirme a seleção.

    Selecionar url do ponto de extremidade

  8. O formulário agora deve ser semelhante ao exemplo a seguir:

    Captura de ecrã do formulário para criar uma subscrição de evento.

    Selecione Criar para guardar a subscrição de eventos.

    Importante

    Aguarde alguns minutos para que o evento seja processado antes de executar o dispositivo. Sempre que os serviços do Azure são criados ou alterados, iniciar a próxima etapa em seu pipeline muito cedo pode resultar em erros desnecessários. Por exemplo, se o hub IoT não estiver em um estado ativo, ele não estará pronto para receber eventos. Verifique a página Visão geral do hub IoT para ver se o hub IoT está em um estado ativo ou não. Se não estiver, você verá um aviso na parte superior da página.

    Captura de tela de um erro do Hub IoT que diz que ele não está em um estado ativo.

Executar dispositivo e observar eventos

Agora que sua assinatura de evento está configurada, vamos testar conectando um dispositivo.

Registrar um dispositivo no Hub IoT

  1. No hub IoT, selecione Dispositivos.

  2. Selecione + Adicionar dispositivo na parte superior do painel.

  3. Em ID do Dispositivo, introduza Demo-Device-1.

  4. Selecione Guardar.

    Captura de ecrã da localização do botão Adicionar dispositivo.

  5. Clique no dispositivo novamente; Agora, as cadeias de conexão e as teclas serão preenchidas. Copie e salve a cadeia de conexão primária para uso posterior.

    Captura de ecrã da localização da Cadeia de Ligação Principal do seu dispositivo.

Iniciar o simulador do Raspberry Pi

Vamos usar o simulador da web do Raspberry Pi para simular a conexão do dispositivo.

Iniciar o simulador do Raspberry Pi

Execute um aplicativo de exemplo no simulador da Web do Raspberry Pi

Este aplicativo de exemplo acionará um evento conectado ao dispositivo.

  1. Na área de codificação, substitua o espaço reservado na Linha 15 pela cadeia de conexão de dispositivo do Hub IoT do Azure salva no final da seção anterior.

    Captura de tela de onde adicionar sua cadeia de conexão principal no script do Raspberry Pi.

  2. Execute o aplicativo selecionando Executar.

    Você vê algo semelhante à saída a seguir que mostra os dados do sensor e as mensagens enviadas para seu hub IoT.

    Captura de tela do que esperar do console de saída ao executar o Raspberry Pi.

  3. Você pode verificar sua página Visão geral do aplicativo lógico para verificar se sua lógica está sendo acionada. Vai dizer Bem sucedido ou Reprovado. Verificar aqui permite que você saiba o estado do seu aplicativo lógico se a solução de problemas for necessária. Espere um atraso de 15 a 30 segundos a partir do momento em que o gatilho é executado. Se você precisar solucionar problemas do seu aplicativo lógico, consulte este artigo Solucionar erros .

    Captura de ecrã das atualizações de estado na página Descrição Geral da aplicação lógica.

  4. Selecione Parar para parar o simulador, que dispara um evento Dispositivo desconectado . Esse evento fará logon na página Visão geral do aplicativo lógico, assim como o evento de conexão registrado lá.

Agora você executou um aplicativo de exemplo para coletar eventos de conexão e desconexão do seu dispositivo, que vão para o seu hub IoT.

Observar eventos no Azure Cosmos DB

Você pode ver os resultados do aplicativo lógico executado em seu documento do Cosmos DB. O documento aparece na coleção Items quando você atualiza a página. Cada evento de estado de conexão gera um novo documento ao qual é atribuído um idarquivo . A imagem a seguir mostra o documento criado quando o dispositivo foi iniciado (conectado). O tipo de evento conectado é listado na saída JSON.

Captura de tela do evento de estado de conexão recém-gerado em uma coleção do Cosmos DB.

Utilizar a CLI do Azure

Em vez de usar o portal do Azure, você pode realizar as etapas do Hub IoT usando a CLI do Azure. Para obter detalhes, consulte as páginas da CLI do Azure para criar uma assinatura de evento e criar um dispositivo IoT.

Clean up resources (Limpar recursos)

Este tutorial utilizou recursos que incorrem em custos na sua subscrição do Azure. Quando terminar de experimentar o tutorial e testar os resultados, desative ou exclua recursos que não deseja manter.

Aplicação lógica

Se não quiser perder o trabalho realizado na sua aplicação lógica, desative-a em vez de a eliminar.

  1. Navegue até à sua aplicação lógica.

  2. Na folha Visão geral, selecione Excluir ou Desabilitar.

    Cada subscrição pode ter um hub IoT gratuito. Se tiver criado um hub gratuito para este tutorial, não precisa de o eliminar para evitar custos.

Hub IoT ou Grade de Eventos

  1. Navegue até ao seu hub IoT.

  2. Na folha Visão geral, selecione Excluir.

  3. Mesmo que decida manter o hub IoT, poderá ser conveniente eliminar a subscrição de evento que criou. No hub IoT, selecione Event Grid.

  4. Selecione a subscrição de evento que pretende remover e, em seguida, selecione Eliminar.

Cosmos DB

Para remover uma conta do Azure Cosmos DB do portal do Azure, vá para o seu recurso e selecione Excluir conta na barra de menu superior. Consulte instruções detalhadas para excluir uma conta do Azure Cosmos DB.

Próximos passos