Implantar uma VM Linux habilitada para IoT Edge

Concluído

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

Antes de implantar dispositivos IoT Edge reais em suas lojas, você deseja verificar se os dispositivos funcionarão conforme o esperado. Para testar seu cenário, você planeja implantar o tempo de execução do IoT Edge em uma VM Linux do Azure e, em seguida, implantar seus módulos do IoT Edge nessa VM.

Aqui, você analisará alguns conceitos principais do IoT Edge, aprenderá como um dispositivo IoT Edge se conecta a um aplicativo do IoT Central e como o IoT Central implanta seus módulos do IoT Edge no tempo de execução do IoT Edge.

O que é o tempo de execução do IoT Edge?

O runtime do Azure IoT Edge permite lógica personalizada e da cloud nos dispositivos IoT Edge. O tempo de execução fica no dispositivo IoT Edge e executa operações de gerenciamento e comunicação. O tempo de execução:

  • Instala e atualiza cargas de trabalho no dispositivo.
  • Mantém as normas de segurança do Azure IoT Edge no dispositivo.
  • Garante que os módulos do IoT Edge estão sempre em execução.
  • Reporta o estado de funcionamento dos módulos à cloud, para monitorização remota.
  • Gerencia a comunicação entre dispositivos downstream e um dispositivo IoT Edge, entre módulos em um dispositivo IoT Edge, entre um dispositivo IoT Edge e a nuvem e entre dispositivos IoT Edge.

O que são módulos IoT Edge?

Os módulos IoT Edge são unidades de execução que executam sua 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. Pode desenvolver módulos personalizados ou empacotar determinados serviços do Azure em módulos que disponibilizam informações offline e na periferia. Como os módulos são executados em contêineres do Docker, eles se comportam da mesma maneira se estiverem instalados em uma VM ou em um dispositivo real.

Na próxima unidade, você instalará o tempo de execução do IoT Edge e implantará um módulo personalizado que coleta dados ambientais para enviar ao IoT Central. Um operador do IoT Central pode monitorar as condições ambientais em suas lojas exibindo a telemetria em painéis no aplicativo.

Como um dispositivo IoT Edge se conecta ao IoT Central?

Os dispositivos IoT Edge, como outros dispositivos, usam o DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT para se conectar ao seu aplicativo IoT Central. Na unidade anterior, quando você adicionou um dispositivo ao seu aplicativo IoT Central, anotou a ID do escopo, a ID do dispositivo e a chave do dispositivo. Você adiciona esses valores ao arquivo de configuração do IoT Edge no dispositivo IoT Edge. A seção relevante deste arquivo TOML se parece com a seguinte. O registration_id é o ID 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 IoT Edge edita o arquivo de configuração para você.

Como o IoT Central implanta módulos em um tempo de execução do IoT Edge?

Na unidade anterior, ao criar o modelo de dispositivo para o sensor ambiental, você carregou um manifesto de implantação para o modelo. Quando o tempo de execução do IoT Edge se conecta ao seu aplicativo IoT Central, ele baixa o manifesto de implantação. O tempo de execução 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 edgeAgent de sistema necessários e o , e edgeHubum módulo personalizado SimulatedTemperatureSensor . Este módulo personalizado envia telemetria ambiente e máquina para o 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 IoT Central?

2.

De onde um dispositivo IoT Edge baixa módulos?