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 verkliga 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 IoT Central-program och hur 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, mellan moduler på en IoT Edge-enhet, mellan en IoT Edge-enhet och molnet samt mellan 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 riktig 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 IoT Central. En IoT Central-operatör kan sedan övervaka miljövillkoren i dina butiker genom att visa telemetrin på instrumentpaneler i programmet.

Hur ansluter en IoT Edge-enhet till IoT Central?

IoT Edge-enheter, precis som andra enheter, använder IoT Hub Device Provisioning Service (DPS) för att ansluta till ditt IoT Central-program. I föregående lektion, när du lade till en enhet i ditt IoT Central-program, antecknade du omfångs-ID, enhets-ID och enhetsnyckel. 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 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 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 edgeAgentedgeHub, och en anpassad SimulatedTemperatureSensor modul. Den här anpassade modulen skickar omgivande telemetri och datortelemetri till IoT Central och har två egenskaper, SendData och SendInterval, som en operator 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 IoT Central?

2.

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