Dela via


Förstå Azure IoT Edge-moduler

Gäller för: Bockmarkering för IoT Edge 1.5 IoT Edge 1.5 Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Med Azure IoT Edge kan du distribuera och hantera affärslogik på gränsen i form av moduler. Azure IoT Edge-moduler är den minsta beräkningsenheten som hanteras av IoT Edge och kan innehålla Azure-tjänster (till exempel Azure Stream Analytics) eller din egen lösningsspecifika kod. För att förstå hur moduler utvecklas, distribueras och underhålls bör du överväga de fyra konceptuella elementen i en modul:

  • En modulbild är ett paket som innehåller programvaran som definierar en modul.
  • En modulinstans är den specifika beräkningsenhet som kör modulbilden på en IoT Edge-enhet. Modulinstansen startas av IoT Edge-körningen.
  • En modulidentitet är en informationsdel (inklusive säkerhetsautentiseringsuppgifter) som lagras i IoT Hub och som är associerad med varje modulinstans.
  • En modultvilling är ett JSON-dokument som lagras i IoT Hub och som innehåller tillståndsinformation för en modulinstans, inklusive metadata, konfigurationer och villkor.

Modulbilder och instanser

IoT Edge-modulavbildningar innehåller program som utnyttjar hanterings-, säkerhets- och kommunikationsfunktionerna i IoT Edge-körningen. Du kan utveckla egna modulbilder eller exportera en från en Azure-tjänst som stöds, till exempel Azure Stream Analytics. Avbildningarna finns i molnet och de kan uppdateras, ändras och distribueras i olika lösningar. Till exempel finns en modul som använder maskininlärning för att förutsäga produktionslinjeutdata som en separat bild än en modul som använder visuellt innehåll för att styra en drönare.

Varje gång en modulavbildning distribueras till en enhet och startas av IoT Edge-körningen skapas en ny instans av modulen. Två enheter i olika delar av världen kan använda samma modulbild. Varje enhet skulle dock ha en egen modulinstans när modulen startas på enheten.

Diagram – Modulbilder i molnet, modulinstanser på enheter

Under implementeringen finns modulavbildningar som containeravbildningar på en lagringsplats och modulinstanser är containrar på enheter.

Modulidentiteter

När en ny modulinstans skapas av IoT Edge-körningen får den en motsvarande modulidentitet. Modulidentiteten lagras i IoT Hub och används som adress- och säkerhetsomfång för all lokal kommunikation och molnkommunikation för modulinstansen.

Identiteten som är associerad med en modulinstans beror på identiteten på den enhet som instansen körs på och det namn som du anger för modulen i din lösning. Om du till exempel anropar insight en modul som använder en Azure Stream Analytics och distribuerar den på en enhet med namnet Hannover01skapar IoT Edge-körningen en motsvarande modulidentitet med namnet /devices/Hannover01/modules/insight.

I scenarier när du behöver distribuera en modulbild flera gånger på samma enhet kan du distribuera samma avbildning flera gånger med olika namn.

Diagram – Modulidentiteter är unika inom enheter och mellan enheter

Modultvillingar

Varje modulinstans har också en motsvarande modultvilling som du kan använda för att konfigurera modulinstansen. Instansen och tvillingen är associerade med varandra via modulidentiteten.

En modultvilling är ett JSON-dokument som lagrar modulinformation och konfigurationsegenskaper. Det här konceptet parallellar enhetstvillingkonceptet från IoT Hub. Strukturen för en modultvilling är densamma som en enhetstvilling. DE API:er som används för att interagera med båda typerna av tvillingar är också desamma. Den enda skillnaden mellan de två är den identitet som används för att instansiera klient-SDK:t.

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module’s connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

Offlinefunktioner

Azure IoT Edge-moduler kan fungera offline på obestämd tid efter synkronisering med IoT Hub minst en gång. IoT Edge-enheter kan också utöka den här offlinefunktionen till andra IoT-enheter. Mer information finns i Förstå utökade offlinefunktioner för IoT Edge-enheter, moduler och underordnade enheter.

Nästa steg