Distribuera en IoT Edge-aktiverad virtuell Linux-dator

Slutförd

För att testa IoT Edge-konfigurationen måste du distribuera IoT Edge-körningen till en virtuell dator (VM).

Innan du distribuerar IoT Edge-enheter till dina butiker vill du kontrollera att enheterna fungerar som förväntat. För att testa ditt scenario planerar du att distribuera IoT Edge-körningen till en virtuell Azure Linux-dator och sedan distribuera dina IoT Edge-moduler till den här virtuella datorn.

Här går du igenom några grundläggande IoT Edge-begrepp, lär dig hur en IoT Edge-enhet ansluter till ett Azure IoT Central-program och hur Azure IoT Central distribuerar dina IoT Edge-moduler till IoT Edge-körningen.

Vad är IoT Edge-körningen?

Azure IoT Edge-körning möjliggör anpassad och molnbaserad logik på IoT Edge-enheter. Körningen finns på IoT Edge-enheten och utför hanterings- och kommunikationsåtgärder. Körningen:

  • Installerar och uppdaterar arbetsbelastningar på enheten.

  • Underhåller Azure IoT Edge-säkerhetsstandarder på enheten.

  • Säkerställer att IoT Edge-moduler alltid körs.

  • Rapporterar modulens hälsa till molnet för fjärrövervakning.

  • Hanterar kommunikationen mellan:

    • Underordnade enheter och en IoT Edge-enhet
    • Moduler på en IoT Edge-enhet
    • En IoT Edge-enhet och molnet
    • IoT Edge-enheter

Vad är IoT Edge-moduler?

IoT Edge-moduler är körningsenheter som kör din affärslogik vid gränsen. Moduler implementeras som Docker-kompatibla containrar. Flera moduler kan konfigureras för att kommunicera med varandra och skapa en pipeline för databearbetning. Du kan utveckla anpassade moduler eller paketera vissa Azure-tjänster i moduler som ger insikter offline och på gränsen. Eftersom modulerna körs i Docker-containrar fungerar de på samma sätt oavsett om de är installerade på en virtuell dator eller på en fysisk enhet.

I nästa lektion installerar du IoT Edge-körningen och distribuerar en anpassad modul som samlar in miljödata som ska skickas till Azure IoT Central. En Azure IoT Central-operatör kan sedan övervaka miljöförhållandena i dina butiker genom att visa telemetrin på instrumentpaneler i programmet.

Hur ansluter en IoT Edge-enhet till Azure IoT Central?

IoT Edge-enheter, precis som andra enheter, använder IoT Hub Device Provisioning Service (DPS) för att ansluta till ditt Azure IoT Central-program. I föregående lektion, när du lade till en enhet i ditt Azure IoT Central-program, antecknade du omfångs-ID:t och enhetsnyckeln. Du lägger till dessa värden i IoT Edge-konfigurationsfilen på IoT Edge-enheten. Det relevanta avsnittet i den här TOML-filen ser ut så här. registration_id är enhets-ID:t:

[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" }

I nästa lektion redigerar distributionsskriptet som du använder för IoT Edge-enheten konfigurationsfilen åt dig.

Hur distribuerar Azure IoT Central moduler till en IoT Edge-körning?

När du skapade enhetsmallen för miljösensorn i föregående lektion laddade du upp ett distributionsmanifest till mallen. När IoT Edge-körningen ansluter till ditt Azure IoT Central-program laddas distributionsmanifestet ned. Körningen använder informationen i distributionsmanifestet för att avgöra vilka moduler som ska installeras och hur de ska konfigureras. Moduler laddas ned från ett containerregister, till exempel Azure Container Registry eller Docker Hub.

Distributionsmanifestet som du använde installerar de två nödvändiga systemmodulerna och edgeAgent edgeHub, och en anpassad SimulatedTemperatureSensor modul. Den här anpassade modulen skickar omgivande telemetri och datortelemetri till Azure IoT Central och har två egenskaper, SendData och SendInterval, som en operatör kan använda för att konfigurera modulen:

{
  "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
      }
    }
  }
}

Distribuera IoT Edge till en virtuell dator

1.

Hur ansluter en IoT Edge-enhet till Azure IoT Central?

2.

Varifrån laddar en IoT Edge-enhet ned moduler?