Delen via


Begrijp Azure IoT Edge-modules

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5

Belangrijk

IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS bereikt het einde van de ondersteuning op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

Met Azure IoT Edge kunt u bedrijfslogica implementeren en beheren op edge-apparaten met behulp van modules. Azure IoT Edge-modules zijn de kleinste rekeneenheid die wordt beheerd door IoT Edge en kan Azure-services (zoals Azure Stream Analytics) of uw eigen oplossingsspecifieke code bevatten. Als u wilt weten hoe modules worden ontwikkeld, geïmplementeerd en onderhouden, moet u rekening houden met de vier conceptuele elementen van een module:

  • Een module-afbeelding is een pakket met de software waarmee een module wordt gedefinieerd.
  • Een module-instantie is de specifieke rekeneenheid waarop de module-afbeelding wordt uitgevoerd op een IoT Edge-apparaat. Het module-exemplaar wordt gestart door de IoT Edge-runtime.
  • Een module-id is een stukje informatie (inclusief beveiligingsreferenties) dat is opgeslagen in IoT Hub die is gekoppeld aan elk module-exemplaar.
  • Een moduledubbel is een JSON-document dat is opgeslagen in IoT Hub met statusinformatie voor een module-exemplaar, inclusief metagegevens, configuraties en voorwaarden.

Module-afbeeldingen en instanties

Installatiekopieën van IoT Edge-modules bevatten toepassingen die profiteren van de beheer-, beveiligings- en communicatiefuncties van de IoT Edge-runtime. U kunt uw eigen moduleafbeeldingen maken of een afbeelding exporteren vanuit een ondersteunde Azure-service, zoals Azure Stream Analytics. De installatiekopieën bevinden zich in de cloud en u kunt ze bijwerken, wijzigen en implementeren in verschillende oplossingen. Een module die machine learning gebruikt om de uitvoer van productielijnen te voorspellen, is bijvoorbeeld een afzonderlijke afbeelding van een module die computer vision gebruikt om een drone te beheren.

Elke keer dat de IoT Edge-runtime een module-image op een apparaat implementeert en start, wordt er een nieuw exemplaar van die module gemaakt. Twee apparaten in verschillende delen van de wereld kunnen hetzelfde modulebeeld gebruiken. Elke apparaat zou echter zijn eigen module-instantie hebben wanneer de module op het apparaat wordt gestart.

Diagram - Moduleafbeeldingen in de cloud, module-exemplaren op apparaten

In de implementatie bestaan module-afbeeldingen als container-afbeeldingen in een repository, en module-instanties zijn containers op apparaten.

Module-identiteiten

Wanneer de IoT Edge-runtime een nieuw module-exemplaar maakt, wordt er een bijbehorende module-id toegewezen. IoT Hub slaat de module-id op, die fungeert als het adresserings- en beveiligingsbereik voor alle lokale en cloudcommunicatie voor het module-exemplaar.

De identiteit van het module-exemplaar is afhankelijk van de identiteit van het apparaat en de naam die u aan de module in uw oplossing toewijst. Als u bijvoorbeeld een module insight een naam geeft en deze implementeert op een apparaat met de naam Hannover01, maakt de IoT Edge-runtime een bijbehorende module-id met de naam /devices/Hannover01/modules/insight.

In situaties waarin u een module-afbeelding meerdere keren op één en hetzelfde apparaat moet plaatsen, kunt u deze onder verschillende namen toevoegen.

Diagram: module-identiteiten zijn uniek binnen apparaten en op verschillende apparaten

Moduleparen

Elk module-exemplaar heeft een bijbehorende moduletweeling die u gebruikt om het te configureren. De module-identiteit koppelt het exemplaar en de tweeling.

Een moduledubbel is een JSON-document waarin modulegegevens en configuratie-eigenschappen worden opgeslagen. Dit concept parallelleert het concept van de apparaatdubbel vanuit IoT Hub. De structuur van een moduledubbel is hetzelfde als die van een apparaatdubbel. De API's voor interactie met beide typen tweelingen zijn hetzelfde. Het enige verschil tussen de twee is de identiteit die wordt gebruikt om de client-SDK te instantiëren.

// 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();

Functionaliteiten offline

Azure IoT Edge-modules werken voor onbepaalde tijd offline na het synchroniseren met IoT Hub. IoT Edge-apparaten kunnen deze offlinemogelijkheid ook uitbreiden naar andere IoT-apparaten. Zie Uitgebreide offlinemogelijkheden voor IoT Edge-apparaten, -modules en downstreamapparaten voor meer informatie.

Volgende stappen