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.

Criar um hub IoT

Você pode criar rapidamente um novo hub IoT usando o terminal do Azure Cloud Shell no portal.

  1. Entre no portal do Azure.

  2. No canto direito superior da página, selecione o botão Cloud Shell.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Execute o seguinte comando para criar um novo grupo de recursos:

    az group create --name {your resource group name} --location westus
    
  4. 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 
    
  5. 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

  1. 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.

    Screenshot of how to select the logic app from a list of resources.

  2. Na próxima tela, selecione Criar.

  3. 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.

    Screenshot of how to configure your logic app.

  4. Selecione Examinar + criar.

  5. Verifique as configurações e selecione Criar.

  6. Assim que o recurso for criado, escolha Ir para o recurso.

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

    Screenshot of the Logic App Designer templates.

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.

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

  2. Percorra os resultados e selecione Solicitação - Quando uma solicitação HTTP é recebida como o gatilho.

    Select HTTP request trigger

  3. Selecione Use o conteúdo de amostra para gerar o esquema.

    Use sample payload

  4. Copie o json abaixo e substitua os valores de espaço reservado <> pelos seus.

  5. 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.

  1. Selecione Nova etapa. Uma janela é exibida, solicitando que você Escolha uma ação.

  2. Pesquise por Outlook.

  3. 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.

    Select email provider connector

  4. Selecione a ação Enviar um email (V2).

  5. Selecione Entrar e entre no seu email. Selecione Sim para permitir que o aplicativo acesse suas informações.

  6. 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.

    Screenshot of the condensed body output form.

    • 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:

    Screenshot of how to create an event email in the template.

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

  1. Expanda a caixa de configuração do gatilho Quando uma solicitação HTTP for recebida, clicando nela.

  2. Copie o valor de URL DE HTTP POST, selecionando o botão de cópia ao lado dele.

    Copy the HTTP POST URL

  3. 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.

  1. 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.

  2. Selecione Eventos.

    Open the Event Grid details

  3. Selecione Assinatura de evento.

    Create new event subscription

  4. Crie a assinatura de evento com os seguintes valores:

    1. Na seção DETALHES DA ASSINATURA DE EVENTO:

      1. Forneça um nome para a assinatura de evento.
      2. Selecione Esquema de Grade de Eventos para Esquema de Evento.
    2. Na seção DETALHES DO TÓPICO:

      1. Confirme se o Tipo de tópico está definido como Hub IoT.
      2. Confirme se o nome do Hub IoT está definido como o valor do campo Recurso de Origem.
      3. 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.
    3. Na seção TIPOS DE EVENTO:

      1. Selecione a lista suspensa Filtrar para Tipos de Evento.

      2. 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.

        select subscription event types

    4. Na seção DETALHES DO PONTO DE EXTREMIDADE:

      1. Selecione o Tipo de Ponto de Extremidade como Web Hook.
      2. Clique em selecionar um ponto de extremidade, cole a URL que você copiou do aplicativo lógico e confirme a seleção.

      select endpoint url

      Quando você terminar, o painel deverá se parecer com o seguinte exemplo:

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. 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.

  1. Selecione o botão do Cloud Shell para reabrir o terminal.

  2. 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.

  3. 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}
    
  4. Quando o dispositivo simulado se conectar com o Hub IoT, você receberá um email notificando sobre um evento "DeviceConnected".

  5. Quando a simulação for concluída, você receberá um email notificando sobre um evento "DeviceDisconnected".

    Screenshot of the email you should receive.

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.

  1. Selecione Grupos de recursos e, em seguida, selecione o grupo de recursos criado para este tutorial.

  2. 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

Para obter uma lista completa de conectores dos Aplicativos Lógicos compatíveis, confira a