Implantar uma VM do Linux habilitada para o IoT Edge

Concluído

Para testar a sua configuração do IoT Edge, você precisa implantar o runtime do IoT Edge em uma VM (máquina virtual).

Antes de implantar dispositivos IoT Edge reais nos seus repositórios, você deseja verificar se os dispositivos funcionam conforme o esperado. Para testar o seu cenário, você planeja a implantação do runtime do IoT Edge em uma VM do Linux do Azure e, em seguida, implanta os módulos do IoT Edge nessa VM.

Aqui, você revisará alguns conceitos básicos do IoT Edge, aprenderá como um dispositivo do IoT Edge se conecta a um aplicativo do Azure IoT Central e como o Azure IoT Central implanta os módulos do IoT Edge no runtime do IoT Edge.

O que é o runtime do IoT Edge?

O runtime do Azure IoT Edge permite lógica personalizada e de nuvem em dispositivos IoT Edge. O runtime se encontra no dispositivo IoT Edge e executa operações de gerenciamento e comunicação. O runtime:

  • Instala e atualiza cargas de trabalho no dispositivo.

  • Mantém os padrões de segurança do Azure IoT Edge no dispositivo.

  • Garante que os módulos do IoT Edge sempre estão em execução.

  • Fornece um relatório sobre a integridade do módulo para a nuvem para o monitoramento remoto.

  • Gerencia a comunicação entre:

    • Dispositivos downstream e um dispositivo IoT Edge
    • Módulos em um dispositivo IoT Edge
    • Um dispositivo IoT Edge e a nuvem
    • Dispositivos IoT Edge

Quais são os módulos do IoT Edge?

Os módulos do IoT Edge são unidades de execução que executam a lógica de negócios na borda. Os módulos são implementados como contêineres compatíveis com o Docker. Vários módulos podem ser configurados para se comunicar entre si, criando um pipeline de processamento de dados. Você pode desenvolver módulos personalizados ou empacotar determinados serviços do Azure em módulos que fornecem informações offline e na borda. Como os módulos são executados em contêineres do Docker, eles se comportam da mesma forma, independentemente de estarem instalados em uma VM ou em um dispositivo físico.

Na próxima unidade, você instalará o runtime do IoT Edge e implantará um módulo personalizado que coleta dados ambientais para enviá-los ao Azure IoT Central. Um operador do Azure IoT Central pode monitorar as condições ambientais nos seus repositórios ao exibir a telemetria em painéis no aplicativo.

Como um dispositivo IoT Edge se conecta ao Azure IoT Central?

Os dispositivos IoT Edge, como outros dispositivos, usam o DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT para se conectar ao seu aplicativo do Azure IoT Central. Na unidade anterior, quando você adicionou um dispositivo ao seu aplicativo do Azure IoT Central, anotou a ID do escopo e a chave do dispositivo. Você adiciona esses valores ao arquivo de configuração do IoT Edge no dispositivo do IoT Edge. A seção relevante desse arquivo TOML é parecida com a seguinte. O registration_id é a identificação do dispositivo:

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"

[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }

Na próxima unidade, o script de implantação usado para o dispositivo do IoT Edge editará o arquivo de configuração para você.

Como o Azure IoT Central implanta módulos em um runtime do IoT Edge?

Na unidade anterior, quando você criou o modelo de dispositivo para o sensor ambiental, carregou um manifesto de implantação para o modelo. Quando o runtime do IoT Edge se conecta ao seu aplicativo do Azure IoT Central, ele baixa o manifesto de implantação. O runtime usa as informações no manifesto de implantação para determinar quais módulos instalar e como configurá-los. Os módulos são baixados de um registro de contêiner, como o Registro de Contêiner do Azure ou o Docker Hub.

O manifesto de implantação usado instala os dois módulos de sistema necessários, edgeAgent e edgeHub, bem como um módulo SimulatedTemperatureSensor personalizado. Esse módulo personalizado envia a telemetria de ambiente e computador para o Azure IoT Central e tem duas propriedades, SendData e SendInterval, que um operador pode usar para configurar o módulo:

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.4",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.4",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

Implantar o IoT Edge em uma VM

1.

Como um dispositivo IoT Edge se conecta ao Azure IoT Central?

2.

De onde um dispositivo do IoT Edge baixa os módulos?