Implantar uma VM Linux habilitada para IoT Edge
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 em suas lojas, você deseja verificar se os dispositivos funcionam 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ê analisa alguns conceitos principais do IoT Edge, aprende como um dispositivo IoT Edge se conecta a um aplicativo do Azure IoT Central e como o Azure 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.
Gere 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 do 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 instalados em uma VM ou em um dispositivo físico.
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 Azure IoT Central. Um operador do Azure 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 Azure 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 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 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 Azure 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 do Azure 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 edgeHub
o , e um módulo personalizado SimulatedTemperatureSensor
. Este módulo personalizado envia telemetria de ambiente e máquina 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
}
}
}
}