Tutorial: Enviar notificações por email sobre os eventos do Hub IoT do Azure usando Aplicativos Lógicos e a Grade de Eventos
A Grade de Eventos do Azure permite que você reaja aos eventos no Hub IoT, disparando ações em seus aplicativos de negócios a jusante.
Este artigo aborda uma configuração de exemplo que usa o Hub IoT e a Grade de Eventos. No final, você terá um aplicativo lógico do Azure configurado para enviar um email de notificação sempre que um dispositivo for conectado ou desconectado do seu hub IoT. A Grade de Eventos pode ser usada para obter uma notificação em tempo hábil sobre a desconexão de dispositivos críticos. As métricas e o diagnóstico podem levar vários minutos (20 minutos ou mais) para aparecer em logs/alertas. Tempos de processamento mais longos podem ser inaceitáveis para a infraestrutura crítica.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
- Uma conta de email de qualquer provedor de email compatível com os Aplicativos Lógicos do Azure, como Office 365 Outlook ou Outlook.com. Essa conta de email é usada para enviar as notificações de eventos.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Criar um hub IoT
Você pode criar rapidamente um novo hub IoT usando o terminal do Azure Cloud Shell no portal.
Entre no portal do Azure.
No canto direito superior da página, selecione o botão Cloud Shell.
Execute o seguinte comando para criar um novo grupo de recursos:
az group create --name {your resource group name} --location westus
Execute o seguinte comando para criar um hub IoT:
az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1
Minimize o terminal do Cloud Shell. Você retornará ao shell mais adiante no tutorial.
Criar um aplicativo lógico
Em seguida, crie um aplicativo lógico e adicione um gatilho de Grade de Eventos HTTP que processe solicitações do hub IoT.
Criar um recurso de aplicativo lógico
No portal do Azure, selecione Criar um recurso e digite "aplicativo lógico" na caixa de pesquisa e selecione retornar. Selecione Aplicativo Lógico dos resultados.
Na próxima tela, selecione Criar.
Dê ao seu aplicativo lógico um nome exclusivo na sua assinatura e, em seguida, selecione a mesma assinatura, grupo de recursos e local como o hub IoT. Escolha o tipo de plano Consumo.
Selecione Examinar + criar.
Verifique as configurações e selecione Criar.
Assim que o recurso for criado, escolha Ir para o recurso.
No Designer de Aplicativos Lógicos, desça na página para ver Modelos. Escolha Aplicativo Lógico em Branco para poder compilar seu aplicativo lógico do zero.
Selecionar um gatilho
Um gatilho é um evento específico que inicia o aplicativo lógico. Para este tutorial, o gatilho que desencadeia o fluxo de trabalho está recebendo uma solicitação através HTTP.
Na barra de pesquisa de conectores e gatilhos, digite HTTP.
Percorra os resultados e selecione Solicitação - Quando uma solicitação HTTP é recebida como o gatilho.
Selecione Use o conteúdo de amostra para gerar o esquema.
Copie o
json
abaixo e substitua os valores de espaço reservado<>
pelos seus.Cole o JSON de Esquema de evento de dispositivo conectado na caixa de texto e selecione Concluído:
[{ "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", "subject": "devices/LogicAppTestDevice", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-06-02T19:17:44.4383997Z", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "<hub name>", "deviceId": "LogicAppTestDevice", "moduleId" : "DeviceModuleID" }, "dataVersion": "1", "metadataVersion": "1" }]
Importante
Não se esqueça de colar o snippet JSON na caixa fornecida pelo link Usar o conteúdo de exemplo para gerar o esquema e não diretamente na caixa Solicitar Esquema JSON do Corpo. O link do conteúdo de exemplo fornece uma forma de gerar o conteúdo JSON com base no snippet JSON. O JSON final que termina no corpo da solicitação é diferente do snippet JSON.
Esse evento é publicado quando um dispositivo é conectado a um hub IoT.
Observação
É possível que você receba uma notificação pop-up informando: Lembre-se de incluir um cabeçalho Content-Type definido como application/json na sua solicitação. Você pode ignorar com segurança esta sugestão e passar para a próxima seção.
Criar uma ação
As ações são quaisquer etapas que ocorrem após o gatilho iniciar o fluxo de trabalho do aplicativos lógico. Para este tutorial, a ação é enviar uma notificação por email do seu provedor de email.
Selecione Nova etapa. Uma janela é exibida, solicitando que você Escolha uma ação.
Pesquise por Outlook.
Com base no seu provedor de email, localize e selecione o conector correspondente. Este tutorial usa o Outlook.com. As etapas para outros provedores de email são semelhantes. Como alternativa, use o Office 365 Outlook para ignorar a etapa de entrada.
Selecione a ação Enviar um email (V2).
Selecione Entrar e entre no seu email. Selecione Sim para permitir que o aplicativo acesse suas informações.
Crie o modelo de email.
Para: insira o endereço de email que receberá os emails de notificação. Para este tutorial, use uma conta de email que você possa acessar para testes.
Entidade: Preencha o texto do assunto. Ao clicar na caixa de texto assunto, você pode selecionar o conteúdo dinâmico a ser incluído. Por exemplo, este tutorial usa
IoT Hub alert: {eventType}
. Se você não conseguir ver o Conteúdo dinâmico, selecione o hiperlink Adicionar conteúdo dinâmico para ativar/desativar a exibição de Conteúdo dinâmico.
Depois de selecionar
eventType
, você verá a saída do formulário de email até agora. Selecione Enviar um email (V2) para editar o corpo do seu email.- Corpo: escreva o texto de seu email. Selecione as propriedades JSON da ferramenta seletora para incluir conteúdo dinâmico com base nos dados de eventos. Se você não conseguir ver o Conteúdo dinâmico, selecione o hiperlink Adicionar conteúdo dinâmico na caixa de texto Corpo. Se ela não mostrar os campos desejados, clique em mais na tela Conteúdo dinâmico para incluir os campos da ação anterior.
Seu modelo de email poderá ser semelhante a este exemplo:
Selecione Salvar no Designer de Aplicativos Lógicos.
Copiar a URL HTTP
Antes de sair do Designer de Aplicativos Lógicos, copie a URL que o aplicativo lógico está ouvindo para um gatilho. Você usa essa URL para configurar a Grade de Eventos.
Expanda a caixa de configuração do gatilho Quando uma solicitação HTTP for recebida, clicando nela.
Copie o valor de URL DE HTTP POST, selecionando o botão de cópia ao lado dele.
Salve essa URL para que você possa referir-se a ela na próxima seção.
Configurar a assinatura de eventos do Hub IoT
Nesta seção, você configura o Hub IoT para publicar eventos à medida que ocorrem.
No portal do Azure, navegue para o hub IoT. Você pode encontrar o seu hub IoT selecionando Hub IoT no painel do Azure e, em seguida, selecionar a sua instância do Hub IoT na lista de recursos.
Selecione Eventos.
Selecione Assinatura de evento.
Crie a assinatura de evento com os seguintes valores:
Na seção DETALHES DA ASSINATURA DE EVENTO:
- Forneça um nome para a assinatura de evento.
- Selecione Esquema de Grade de Eventos para Esquema de Evento.
Na seção DETALHES DO TÓPICO:
- Confirme se o Tipo de tópico está definido como Hub IoT.
- Confirme se o nome do Hub IoT está definido como o valor do campo Recurso de Origem.
- Insira um nome para o tópico do sistema que será criado para você. Para saber mais sobre os tópicos do sistema, confira Visão geral dos tópicos do sistema.
Na seção TIPOS DE EVENTO:
Selecione a lista suspensa Filtrar para Tipos de Evento.
Desmarque as caixas de seleção Dispositivo Criado e Dispositivo Excluído, deixando marcadas apenas as caixas de seleção Dispositivo Conectado e Dispositivo Desconectado.
Na seção DETALHES DO PONTO DE EXTREMIDADE:
- Selecione o Tipo de Ponto de Extremidade como Web Hook.
- Clique em selecionar um ponto de extremidade, cole a URL que você copiou do aplicativo lógico e confirme a seleção.
Quando você terminar, o painel deverá se parecer com o seguinte exemplo:
Selecione Criar.
Simular um novo dispositivo conectando e enviando telemetria
Teste seu aplicativo lógico simulando rapidamente uma conexão de dispositivo usando a CLI do Azure.
Selecione o botão do Cloud Shell para reabrir o terminal.
Execute o seguinte comando para criar uma identidade do dispositivo simulado:
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
O processamento pode levar um minuto. Você verá uma impressão JSON no console depois de criada.
Execute o seguinte comando para simular a conexão do dispositivo ao Hub IoT e enviar a telemetria:
az iot device simulate -d simDevice -n {YourIoTHubName}
Quando o dispositivo simulado se conectar com o Hub IoT, você receberá um email notificando sobre um evento "DeviceConnected".
Quando a simulação for concluída, você receberá um email notificando sobre um evento "DeviceDisconnected".
Limpar os recursos
Este tutorial usou recursos que incorrem em encargos na sua assinatura do Azure. Quando terminar de experimentar o tutorial e testar seus resultados, desabilite ou exclua recursos que você não deseja manter.
Para excluir todos os recursos criados neste tutorial, exclua o grupo de recursos.
Selecione Grupos de recursos e, em seguida, selecione o grupo de recursos criado para este tutorial.
No painel Grupo de recursos, selecione Excluir grupo de recursos. Será solicitado que você insira o nome do grupo de recursos e, em seguida, poderá excluí-lo. Todos os recursos contidos aqui também foram removidos.
Próximas etapas
- Saiba mais sobre Reagir aos eventos do Hub IoT usando a Grade de Eventos para disparar ações.
- Saiba como ordenar os eventos de conexão e desconexão de dispositivo
- Saiba mais sobre o que mais você pode fazer com Grade de Eventos.
Para obter uma lista completa de conectores dos Aplicativos Lógicos compatíveis, confira a