Ansluta Azure IoT Edge-enheter till ett Azure IoT Central-program

Azure IoT Edge flyttar molnanalys och anpassad affärslogik från molnet till dina enheter. Med den här metoden kan molnlösningen fokusera på affärsinsikter i stället för datahantering. Skala ut din IoT-lösning genom att paketera din affärslogik i standardcontainrar, distribuera containrarna till dina enheter och övervaka dem från molnet.

I den här artikeln beskrivs:

  • IoT Edge-gatewaymönster med IoT Central.
  • Hur IoT Edge-enheter ansluter till ett IoT Central-program.
  • Så här använder du IoT Central för att hantera dina IoT Edge-enheter.

Mer information om IoT Edge finns i Vad är Azure IoT Edge?

IoT Edge

Azure IoT Central with Azure IoT Edge

IoT Edge består av tre komponenter:

  • IoT Edge-moduler är containrar som kör Azure-tjänster, partnertjänster eller din egen kod. Moduler distribueras till IoT Edge-enheter och körs lokalt på dessa enheter. Ett distributionsmanifest anger de moduler som ska distribueras till en IoT Edge-enhet.
  • IoT Edge-körningen körs på varje IoT Edge-enhet och hanterar de moduler som distribueras till varje enhet. Körningen består av två IoT Edge-moduler: IoT Edge-agenten och IoT Edge-hubben.
  • Med ett molnbaserat gränssnitt kan du fjärrövervaka och hantera IoT Edge-enheter. IoT Central är ett exempel på ett molngränssnitt.

Med IoT Central kan du använda följande funktioner för IoT Edge-enheter:

  • Hantering av distributionsmanifest. Ett IoT Central-program kan hantera en samling distributionsmanifest och tilldela dem till enheter.
  • Enhetsmallar för att beskriva funktionerna i en IoT Edge-enhet, till exempel:
    • Telemetrin som varje IoT Edge-modul skickar.
    • Egenskaperna som varje IoT Edge-modul rapporterar.
    • Kommandona som varje IoT Edge-modul svarar på.
    • Relationerna mellan en IoT Edge-gatewayenhet och underordnade enheter.
    • Molnegenskaper som inte lagras på IoT Edge-enheten.
    • Enhetsvyer och formulär.
  • Möjligheten att etablera IoT Edge-enheter i stor skala med hjälp av Azure IoT-enhetsetableringstjänsten.
  • Regler och åtgärder.
  • Anpassade instrumentpaneler och analyser.
  • Kontinuerlig dataexport av telemetri från IoT Edge-enheter.

En IoT Edge-enhet kan vara:

  • En fristående enhet som består av anpassade moduler.
  • En gatewayenhet med underordnade enheter som ansluter till den. En gatewayenhet kan innehålla anpassade moduler.

IoT Edge-enheter och IoT Central

IoT Edge-enheter kan använda signaturtoken för delad åtkomst eller X.509-certifikat för att autentisera med IoT Central. Du kan registrera dina IoT Edge-enheter manuellt i IoT Central innan de ansluter för första gången, eller använda Device Provisioning Service för att hantera registreringen. Mer information finns i Hur enheter ansluter.

IoT Central kan också använda enhetsmallar för att definiera hur IoT Central interagerar med en IoT Edge-enhet. En enhetsmall anger till exempel:

  • Typerna av telemetri och egenskaper som en IoT Edge-enhet skickar så att IoT Central kan tolka dem och skapa visualiseringar.
  • Kommandona som en IoT Edge-enhet svarar på så att IoT Central kan visa ett användargränssnitt som en operatör kan använda för att anropa kommandona.

Om det inte finns någon enhetsmall som är associerad med en enhet visas telemetri- och egenskapsvärden som odefinierade data. Du kan dock fortfarande använda IoT Central-funktioner för dataexport för att vidarebefordra telemetri- och egenskapsvärden till andra serverdelstjänster.

IoT Edge-distributionsmanifest

I IoT Edge distribuerar och hanterar du affärslogik i form av moduler. IoT Edge-moduler är den minsta beräkningsenheten som hanteras av IoT Edge och kan innehålla Azure-tjänster som Azure Stream Analytics eller din egen lösningsspecifika kod.

Ett IoT Edge-distributionsmanifest visar de IoT Edge-moduler som ska distribueras på enheten och hur du konfigurerar dem.

I Azure IoT Central navigerar du till Edge-manifest för att importera och hantera distributionsmanifesten för IoT Edge-enheterna i din lösning.

Följande kodfragment visar ett exempel på IoT Edge-distributionsmanifest:

{
  "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.0.9",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.0.9",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

I föregående kodfragment kan du se:

  • Det finns tre moduler. Systemmodulerna för IoT Edge-agenten och IoT Edge-hubben som finns i varje distributionsmanifest. Den anpassade modulen SimulatedTemperatureSensor .
  • De offentliga modulavbildningarna hämtas från en Azure Container Registry-lagringsplats som inte kräver några autentiseringsuppgifter för att ansluta. För privata modulavbildningar anger du autentiseringsuppgifterna för containerregistret som ska användas i registryCredentials inställningen för IoT Edge-agentmodulen .
  • Den anpassade modulen SimulatedTemperatureSensor har två skrivbara egenskaper "SendData": true och "SendInterval": 10.

Följande skärmbild visar det här distributionsmanifestet som importerats till IoT Central:

Screenshot that shows the imported Environmental sensor deployment manifest.

Om ditt program använder organisationer kan du tilldela distributionsmanifest till specifika organisationer. Föregående skärmbild visar distributionsmanifestet som tilldelats till Store Manager/Americas-organisationen .

Information om hur du använder sidan Edge-manifest och tilldelar distributionsmanifest till IoT Edge-enheter finns i Hantera IoT Edge-distributionsmanifest i ditt IoT Central-program.

Hantera en otilldelade enhet

En IoT Edge-enhet som inte har en associerad enhetsmall kallas för en otilldelad enhet. Du kan inte använda IoT Central-funktioner som instrumentpaneler, enhetsgrupper, analys, regler och jobb med otilldelade enheter. Du kan dock använda följande funktioner med otilldelade enheter:

  • Visa rådata, till exempel telemetri och egenskaper.
  • Anropa enhetskommandon.
  • Läs- och skrivegenskaper.

Screenshot that shows unassigned device capabilities.

Du kan också hantera enskilda moduler på otilldelade enheter:

Screenshot that shows the options for managing modules on unassigned devices.

IoT Edge-enhetsmallar

IoT Central-enhetsmallar använder modeller för att beskriva funktionerna i IoT Edge-enheter. Enhetsmallar är valfria för IoT Edge-enheter. Med enhetsmallen kan du interagera med telemetri, egenskaper och kommandon med hjälp av IoT Central-funktioner som instrumentpaneler och analys. Följande diagram visar modellens struktur för en IoT Edge-enhet:

Diagram that shows the model structure for an IoT Edge device connected to IoT Central.

IoT Central modellerar en IoT Edge-enhet enligt följande:

  • Varje IoT Edge-enhetsmall har en kapacitetsmodell.
  • För varje anpassad modul som anges i distributionsmanifestet lägger du till en moduldefinition om du vill använda IoT Central för att interagera med modulen.
  • En modulfunktionsmodell implementerar ett eller flera modulgränssnitt.
  • Varje modulgränssnitt innehåller telemetri, egenskaper och kommandon.

Du kan generera den grundläggande kapacitetsmodellen baserat på de moduler och egenskaper som definierats i enhetsmanifestet. Mer information finns i Lägga till moduler och egenskaper i enhetsmallar.

IoT Edge-gatewaymönster

IoT Central stöder följande IoT Edge-enhetsmönster:

IoT Edge som en transparent gateway

Underordnade enheter ansluter till IoT Central via gatewayen med sin egen identitet.

IoT Edge as transparent gateway

IoT Edge-enheten etableras i IoT Central tillsammans med de nedströmsenheter som är anslutna till IoT Edge-enheten. Körningsstöd för etablering av underordnade enheter via gatewayen stöds inte för närvarande.

IoT Edge-hubbmodulen fungerar som IoT Central och hanterar anslutningar från enheter som är registrerade i IoT Central. Meddelanden skickas från underordnade enheter till IoT Central som om det inte finns någon gateway mellan dem. I en transparent gateway kan du inte använda anpassade moduler för att ändra meddelandena från de underordnade enheterna.

Kommentar

IoT Central stöder för närvarande inte anslutning av en IoT Edge-enhet som en nedströmsenhet till en transparent IoT Edge-gateway. Det beror på att alla enheter som ansluter till IoT Central etableras med hjälp av Device Provisioning Service (DPS) och DPS för närvarande inte stöder kapslade IoT Edge-scenarier.

IoT Edge som en protokollöversättningsgateway

Med det här mönstret kan du ansluta enheter som inte kan använda något av de protokoll som IoT Central stöder.

IoT Edge as protocol translation gateway

IoT Edge-enheten etableras i IoT Central och all telemetri från dina underordnade enheter representeras som kommer från IoT Edge-enheten. Underordnade enheter som är anslutna till IoT Edge-enheten etableras inte i IoT Central.

IoT Edge som en gateway för identitetsöversättning

Underordnade enheter ansluter till en modul i gatewayen som tillhandahåller IoT Central-enhetsidentiteter för dem.

IoT Edge as identity translation gateway

IoT Edge-enheten etableras i IoT Central tillsammans med de nedströmsenheter som är anslutna till IoT Edge-enheten. För närvarande har IoT Central inte stöd för körning för en gateway för att tillhandahålla en identitet och etablera underordnade enheter. Om du tar med din egen modul för identitetsöversättning kan IoT Central stödja det här mönstret.

Underordnade enhetsrelationer med en gateway och moduler

Om de underordnade enheterna ansluter till en IoT Edge-gatewayenhet via IoT Edge-hubbmodulen är IoT Edge-enheten en transparent gateway:

Diagram of transparent gateway

Om de underordnade enheterna ansluter till en IoT Edge-gatewayenhet via en anpassad modul är IoT Edge-enheten en översättningsgateway. I följande exempel ansluter underordnade enheter via en anpassad Modbus-modul som utför protokollöversättningen:

Diagram of custom module connection

Följande diagram visar anslutningar till en IoT Edge-gatewayenhet via båda typerna av moduler. I det här scenariot är IoT Edge-enheten både en transparent och en översättningsgateway:

Diagram of connecting using both connection modules

Underordnade enheter kan ansluta till en IoT Edge-gatewayenhet via flera anpassade moduler. Följande diagram visar underordnade enheter som ansluter via en anpassad Modbus-modul, en anpassad BLE-modul och IoT Edge-hubbmodulen :

Diagram of connecting using multiple custom modules

Mer information om IoT Edge-gatewaymönster finns i Hur en IoT Edge-enhet kan användas som en gateway.

Distribuera IoT Edge-körningen

Information om var du kan köra IoT Edge-körningen finns i System som stöds av Azure IoT Edge.

Du kan också installera IoT Edge-körningen i följande miljöer:

Övervaka dina IoT Edge-enheter

Information om hur du fjärrövervakar din IoT Edge-flotta finns i Samla in och transportera mått.

Nästa steg

Ett föreslaget nästa steg är att lära dig hur du utvecklar dina egna IoT Edge-moduler.