Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: IoT Edge 1.5
 IoT Edge 1.5
Viktigt!
IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphör från och med den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.
Med modultvillingar i Azure IoT Hub kan du övervaka anslutningen och hälsotillståndet för dina IoT Edge-distributioner. Modultvillingar lagrar information i din IoT-hubb om prestandan hos de moduler som är igång. 
              IoT Edge-agenten och IoT Edge-hubbens runtime-moduler underhåller var och en sina egna modultvillingar: $edgeAgent och $edgeHub.
- 
              $edgeAgenthar hälso- och anslutningsdata om IoT Edge-agenten, IoT Edge-hubbens runtime-moduler och dina anpassade moduler. IoT Edge-agenten distribuerar modulerna, övervakar dem och rapporterar anslutningsstatus till din Azure IoT-hubb.
- 
              $edgeHubhar data om kommunikation mellan IoT Edge-hubben som körs på en enhet och din Azure IoT-hubb. Detta inkluderar bearbetning av inkommande meddelanden från underordnade enheter. IoT Edge-hubben bearbetar kommunikation mellan Azure IoT Hub- och IoT Edge-enheter och -moduler.
Data är ordnade i metadata, taggar och önskade och rapporterade egenskapsuppsättningar i modultvillingens JSON-strukturer. Önskade egenskaper som du anger i filen deployment.json kopieras till modultvillingarna. IoT Edge-agenten och IoT Edge-hubben uppdaterar var och en de rapporterade egenskaperna för sina moduler.
På samma sätt kopieras de önskade egenskaper som du anger för dina anpassade moduler i den deployment.json filen till modultvillingen, men lösningen innehåller dess rapporterade egenskapsvärden.
Den här artikeln visar hur du granskar modultvillingarna i Azure-portalen, Azure CLI och Visual Studio Code. Information om hur du övervakar hur dina enheter tar emot distributionerna finns i Övervaka IoT Edge-distributioner. En översikt över modultvillingar finns i Förstå och använda modultvillingar i IoT Hub.
Dricks
De rapporterade egenskaperna för en runtime-modul kan vara inaktuella om en IoT Edge-enhet kopplas bort från sin IoT-hubb. 
              Kontakta modulen $edgeAgent för att kontrollera om anslutningen har gått förlorad.
Övervaka runtime-modultvillingar
Om du vill felsöka problem med distributionsanslutningen granskar du IoT Edge-agenten och IoT Edge-hubbens runtime-modultvillingar och ökar sedan detaljnivån i andra moduler.
Övervaka modultvilling för IoT Edge-agent
Den här JSON-filen visar modultvillingen $edgeAgent i Visual Studio Code med de flesta avsnitt komprimerade.
{
  "deviceId": "Windows109",
  "moduleId": "$edgeAgent",
  "etag": "AAAAAAAAAAU=",
  "deviceEtag": "NzgwNjA1MDUz",
  "status": "enabled",
  "statusUpdateTime": "0001-01-01T00:00:00Z",
  "connectionState": "Disconnected",
  "lastActivityTime": "0001-01-01T00:00:00Z",
  "cloudToDeviceMessageCount": 0,
  "authenticationType": "sas",
  "x509Thumbprint": {
    "primaryThumbprint": null,
    "secondaryThumbprint": null
  },
  "version": 53,
  "properties": {
    "desired": { "···" },
    "reported": {
      "schemaVersion": "1.0",
      "version": { "···" },
      "lastDesiredStatus": { "···" },
      "runtime": { "···" },
      "systemModules": {
        "edgeAgent": { "···" },
        "edgeHub": { "···" }
      },
      "lastDesiredVersion": 5,
      "modules": {
        "SimulatedTemperatureSensor": { "···" }
      },
      "$metadata": { "···" },
      "$version": 48
    }
  }
}
Den här JSON-filen innehåller följande avsnitt:
- Metadata – har anslutningsdata. Anslutningstillståndet för IoT Edge-agenten beror alltid "Disconnected"på att det gäller för meddelanden från enhet till moln (D2C) och IoT Edge-agenten skickar inte D2C-meddelanden.
- Egenskaper – har underavsnitten desiredochreported.
- Properties.desired – (visas komprimerad) Förväntade egenskapsvärden som angetts i filen deployment.json.
- Properties.reported – de senaste egenskapsvärdena som rapporterats av IoT Edge-agenten.
Både avsnitten properties.desired och properties.reported har en liknande struktur och innehåller metadata för schema, version och körningsinformation. De har också ett modules avsnitt för anpassade moduler som SimulatedTemperatureSensor, och ett systemModules avsnitt för $edgeAgent och $edgeHub körningsmoduler.
Jämför de rapporterade egenskapsvärdena med önskade värden för att hitta avvikelser och identifiera frånkopplingar som hjälper dig att felsöka problem. När du jämför värden kontrollerar du det $lastUpdated rapporterade värdet i metadata avsnittet för den egenskap som du undersöker.
Kontrollera de här egenskaperna när du felsöker:
- exitcode – ett annat värde än noll innebär att modulen stoppades med ett fel. Felkoderna 137 eller 143 används om en modul avsiktligt är inställd på en stoppad status. 
- lastStartTimeUtc – visar DateTime när containern senast startade. Det här värdet är 0001-01-01T00:00:00Z om containern inte startas. 
- lastExitTimeUtc – visar DateTime när containern senast slutfördes. Det här värdet är 0001-01-01T00:00:00Z om containern körs och aldrig stoppades. 
- runtimeStatus – har något av följande värden: - Värde - beskrivning - okänd - Standardtillstånd tills distributionen har skapats. - Tillbakadragande - Modulen är schemalagd att starta men körs inte. Det här värdet är användbart för en modul som startas om. När en felande modul väntar på omstart under en avkylningsperiod befinner sig modulen i ett tillstånd av återhållsamhet. - körs - Modulen körs. - ohälsosam - En hälsokontroll misslyckades eller nådde tidsgränsen. - stoppad - Modulen avslutades framgångsrikt (med en slutkod noll). - Misslyckades - Modulen avslutades med en felutgångskod (icke-noll). Modulen kan återgå till backoffläge från det här tillståndet beroende på omstartspolicyn. Det här tillståndet innebär att modulen har ett oåterkalleligt fel. Ett fel inträffar när Microsoft Monitoring Agent (MMA) inte kan starta om modulen, vilket kräver en ny distribution. 
Mer information finns i EdgeAgent-rapporterade egenskaper.
Övervaka modultvilling för IoT Edge-hubb
Följande JSON visar modultvillingen $edgeHub i Visual Studio Code med de flesta avsnitt komprimerade.
{
  "deviceId": "Windows109",
  "moduleId": "$edgeHub",
  "etag": "AAAAAAAAAAU=",
  "deviceEtag": "NzgwNjA1MDU2",
  "status": "enabled",
  "statusUpdateTime": "0001-01-01T00:00:00Z",
  "connectionState": "Connected",
  "lastActivityTime": "0001-01-01T00:00:00Z",
  "cloudToDeviceMessageCount": 0,
  "authenticationType": "sas",
  "x509Thumbprint": {
    "primaryThumbprint": null,
    "secondaryThumbprint": null
  },
  "version": 102,
    "properties": {
      "desired": { "···" },
      "reported": {
        "schemaVersion": "1.0",
        "version": { "···" },
      "lastDesiredVersion": 5,
      "lastDesiredStatus": { "···" },
      "clients": {
        "Windows109/SimulatedTemperatureSensor": {
          "status": "Disconnected",
          "lastConnectedTimeUtc": "2020-04-08T21:42:42.1743956Z",
          "lastDisconnectedTimeUtc": "2020-04-09T07:02:42.1398325Z"
        }
      },
      "$metadata": { "···" },
      "$version": 97
    }
  }
}
JSON kan beskrivas i följande avsnitt, med början uppifrån:
- Metadata – innehåller anslutningsdata. 
- Egenskaper – innehåller underavsnitten - desiredoch- reported.
- Properties.desired – (visas komprimerad) Förväntade egenskapsvärden som angetts av operatorn i filen deployment.json. 
- Properties.reported – De senaste egenskapsvärdena som rapporterats av IoT Edge-hubben. 
Om du har problem med underordnade enheter börjar du med att kontrollera dessa data.
Övervaka anpassade modultvillingar
Modultvillingen för IoT Edge-agenten behåller information om anslutningen för dina anpassade moduler. Modultvillingen för din anpassade modul lagrar främst data för din lösning. Önskade egenskaper som du definierar i din deployment.json-fil visas i modultvillingen och modulen kan uppdatera rapporterade egenskapsvärden efter behov.
Använd önskat programmeringsspråk med Azure IoT Hub Device SDK:er för att uppdatera rapporterade egenskapsvärden i modultvillingen baserat på modulens programkod. Följande procedur använder Azure SDK för .NET och kod från modulen SimulatedTemperatureSensor :
- Skapa en instans av ModuleClient med hjälp av metoden CreateFromEnvironmentAsync . 
- Hämta modultvillingens egenskaper med hjälp av metoden GetTwinAsync . 
- Skapa en lyssnare med ett återanrop för att fånga upp ändringar i önskade egenskaper med hjälp av metoden SetDesiredPropertyUpdateCallbackAsync . 
- I motringningsmetoden uppdaterar du de rapporterade egenskaperna i modultvillingen med hjälp av metoden UpdateReportedPropertiesAsync och skickar en TwinCollection av de egenskapsvärden som ska anges. 
Få åtkomst till modultvillingarna
Granska JSON för modultvillingar i Azure IoT Hub, Visual Studio Code eller Azure CLI.
Övervaka i Azure IoT Hub
Visa JSON för modultvillingen:
- Logga in på Azure Portal och gå till din IoT-hubb. 
- Välj Enheter under menyn Enhetshantering . 
- Välj enhets-ID för IoT Edge-enheten med de moduler som du vill övervaka. 
- Välj modulnamnet på fliken Moduler och välj sedan Modulidentitetstvilling på den övre menyraden.   
Om du ser meddelandet "En modulidentitet finns inte för den här modulen" innebär det här felet att den serverdelslösning som ursprungligen skapade identiteten inte är tillgänglig.
Övervaka modultvillingar i Visual Studio Code
Granska och redigera en modultvilling:
- Installera Azure IoT Edge - och Azure IoT Hub-tilläggen om de inte redan är installerade. Azure IoT Edge-verktygen för Visual Studio Code-tillägget är i underhållsläge. 
- I Utforskaren expanderar du Azure IoT Hub och expanderar sedan enheten med den modul som du vill övervaka. 
- Välj modulen och välj sedan Redigera Module Twin. En tillfällig fil med modultvillingen laddas ned till datorn och öppnas i Visual Studio Code.   
När du har gjort ändringar väljer du Uppdatera modultwin i redigeraren ovanför kodraden för att spara dem på din IoT-hubb.
              
               
              
              
            
Övervaka modultvillingar i Azure CLI
Kontrollera om IoT Edge körs med kommandot az iot hub invoke-module-method för att pinga IoT Edge-agenten.
Modultvillingstrukturen az iot hub innehåller följande kommandon:
- az iot hub module-twin show – Visa en modultvillingdefinition.
- az iot hub module-twin update – Uppdatera en modultvillingdefinition.
- az iot hub module-twin replace – Ersätt en modultvillingdefinition med en mål-JSON.
Dricks
Om du vill rikta in dig på körningsmodulerna med CLI-kommandon kan du behöva undvika $ tecknet i modul-ID:t. Till exempel:
az iot hub module-twin show -m '$edgeAgent' -n <hub name> -d <device name>
Eller:
az iot hub module-twin show -m \$edgeAgent -n <hub name> -d <device name>
Nästa steg
Lär dig hur du kommunicerar med EdgeAgent med hjälp av inbyggda direktmetoder.