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:
O dispositivo Pi, usando sua chave de dispositivo do hub IoT, é iniciado e, em seguida, interrompido
Um evento do Hub IoT captura a atividade do dispositivo e, em seguida, envia uma solicitação HTTP para seu Aplicativo Lógico
O Aplicativo Lógico processa a solicitação HTTP com base em uma condição definida
O Aplicativo Lógico registra eventos de conexão ou desconexão em um novo documento no Cosmos DB
Pré-requisitos
Uma conta ativa do Azure Cosmos DB para NoSQL. Se você ainda não criou uma, consulte Criar uma conta de banco de dados para uma explicação passo a passo.
Uma coleção em seu banco de dados. Consulte Adicionar uma coleção para obter um passo a passo. Ao criar sua coleção, use
/id
para a chave de partição.Uma subscrição do Azure. Se você não tiver uma assinatura do Azure, crie uma gratuitamente antes de começar.
Um hub IoT em sua assinatura do Azure. Se você ainda não tiver um hub, siga as etapas em Criar um hub IoT.
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
No portal do Azure, selecione +Criar um recurso, selecione Integração e, em seguida, Aplicativo lógico.
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.
Selecione Rever + Criar para rever a sua configuração e, em seguida, selecione Criar para criar a aplicação lógica.
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.
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.
Na barra de pesquisa de conectores e gatilhos, digite HTTP e pressione Enter.
Selecione a solicitação Quando uma solicitação HTTP for recebida como o gatilho.
Selecione Utilize a amostra de payload para gerar o esquema.
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" }]
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.
Selecione + Nova etapa, em seguida, a guia Built-in e, em seguida, localize e selecione o controle chamado Condição.
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.
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.
Na caixa de diálogo if true, clique em Adicionar uma ação.
Procure o Cosmos DB e selecione Azure Cosmos DB — Criar ou atualizar documento (V3)
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âmicoGuarde 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.
Expanda a caixa de configuração de gatilho Quando uma solicitação HTTP for recebida selecionando-a.
Copie o valor de URL do HTTP POST ao selecionar o botão para copiar junto do mesmo.
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.
No portal do Azure, navegue para o seu hub IoT.
Selecione Eventos.
Selecione + Subscrição de eventos.
Preencha os Detalhes da Assinatura do Evento: forneça um Nome descritivo e selecione Esquema da Grade de Eventos como o Esquema do Evento.
Crie um Nome de Tópico do Sistema para seu recurso de hub IoT.
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.
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.
O formulário agora deve ser semelhante ao exemplo a seguir:
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.
Executar dispositivo e observar eventos
Agora que sua assinatura de evento está configurada, vamos testar conectando um dispositivo.
Registrar um dispositivo no Hub IoT
No hub IoT, selecione Dispositivos.
Selecione + Adicionar dispositivo na parte superior do painel.
Em ID do Dispositivo, introduza
Demo-Device-1
.Selecione Guardar.
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.
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.
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.
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.
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 .
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 id
arquivo . A imagem a seguir mostra o documento criado quando o dispositivo foi iniciado (conectado). O tipo de evento conectado é listado na saída JSON.
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.
Navegue até à sua aplicação lógica.
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
Navegue até ao seu hub IoT.
Na folha Visão geral, selecione Excluir.
Mesmo que decida manter o hub IoT, poderá ser conveniente eliminar a subscrição de evento que criou. No hub IoT, selecione Event Grid.
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
Saiba mais sobre como reagir a eventos do Hub IoT usando a Grade de Eventos para disparar ações
Saiba mais o que mais pode fazer com a Grelha de Eventos
Saiba como usar a Grade de Eventos e o Azure Monitor para monitorar, diagnosticar e solucionar problemas de conectividade de dispositivos com o Hub IoT