Lösningar på vanliga problem för Azure IoT Edge

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

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.

Använd den här artikeln för att identifiera och lösa vanliga problem när du använder IoT Edge-lösningar. Om du behöver information om hur du hittar loggar och fel från din IoT Edge-enhet kan du läsa Felsöka din IoT Edge-enhet.

Etablering och distribution

IoT Edge-modulen distribueras korrekt och försvinner sedan från enheten

Symtom

När du har konfigurerat moduler för en IoT Edge-enhet distribueras modulerna, men efter några minuter försvinner de från enheten och från enhetsinformationen i Azure-portalen. Andra moduler än de som definierats kan också visas på enheten.

Orsak

Om en automatisk distribution riktar sig mot en enhet prioriteras den framför att manuellt ange modulerna för en enskild enhet. Funktionen Ange moduler i Azure-portalen eller Skapa distribution för enskilda enhetsfunktioner i Visual Studio Code börjar gälla en stund. Du ser de moduler som du definierade startar på enheten. Sedan startar och skriver den automatiska distributionens prioritet över enhetens önskade egenskaper.

Lösning

Använd endast en typ av distributionsmekanism per enhet, antingen en automatisk distribution eller enskilda enhetsdistributioner. Om du har flera automatiska distributioner riktade till en enhet kan du ändra prioritets- eller målbeskrivningar för att se till att rätt distribution gäller för en viss enhet. Du kan också uppdatera enhetstvillingen så att den inte längre matchar målbeskrivningen för den automatiska distributionen.

Mer information finns i Förstå automatiska IoT Edge-distributioner för enskilda enheter eller i stor skala.

IoT Edge-körning

IoT Edge-agenten stoppas efter en minut

Symtom

EdgeAgent-modulen startar och körs i ungefär en minut och stoppas sedan. Loggarna anger att IoT Edge-agenten försöker ansluta till IoT Hub via AMQP och sedan försöker ansluta med AMQP via WebSocket. När det misslyckas avslutas IoT Edge-agenten.

Exempel på edgeAgent-loggar:

2017-11-28 18:46:19 [INF] - Starting module management agent.
2017-11-28 18:46:19 [INF] - Version - 1.0.7516610 (03c94f85d0833a861a43c669842f0817924911d5)
2017-11-28 18:46:19 [INF] - Edge agent attempting to connect to IoT Hub via AMQP...
2017-11-28 18:46:49 [INF] - Edge agent attempting to connect to IoT Hub via AMQP over WebSocket...

Orsak

En nätverkskonfiguration i värdnätverket hindrar IoT Edge-agenten från att nå nätverket. Agenten försöker ansluta via AMQP (port 5671) först. Om anslutningen misslyckas försöker den använda WebSockets (port 443).

IoT Edge-körningen ställer in ett nätverk för varje modul att kommunicera på. På Linux är nätverket en nätverksbrygga. I Windows använder den NAT. Det här problemet är vanligare på Windows-enheter som använder Windows-containrar som använder NAT-nätverket.

Lösning

Se till att det finns en väg till Internet för IP-adresserna som tilldelats till den här bryggan/NAT-nätverket. Ibland åsidosätter en VPN-konfiguration på värden IoT Edge-nätverket.

Edge-agentmodulen rapporterar "tom konfigurationsfil", och inga moduler startar på enheten

Symtom

  • Enheten har problem med att starta moduler som definierats i distributionen. Endast edgeAgent körs men och rapporterar en tom konfigurationsfil....

  • När du kör sudo iotedge check på en enhet rapporterar den att containermotorn inte har konfigurerats med DNS-serverinställningen, vilket kan påverka anslutningen till IoT Hub. https://aka.ms/iotedge-prod-checklist-dns Se för bästa praxis.

Orsak

  • Som standard startar IoT Edge moduler i sitt eget isolerade containernätverk. Enheten kan ha problem med DNS-namnmatchning i det här privata nätverket.
  • Om du använder en snapinstallation av IoT Edge är Docker-konfigurationsfilen en annan plats. Se lösningsalternativ 3.

Lösning

Alternativ 1: Ange DNS-server i inställningar för containermotorn

Ange DNS-servern för din miljö i inställningarna för containermotorn, som gäller för alla containermoduler som startas av motorn. Skapa en fil med namnet daemon.jsonoch ange sedan den DNS-server som ska användas. Till exempel:

{
    "dns": ["1.1.1.1"]
}

Den här DNS-servern är inställd på en offentligt tillgänglig DNS-tjänst. Men vissa nätverk, till exempel företagsnätverk, har sina egna DNS-servrar installerade och tillåter inte åtkomst till offentliga DNS-servrar. Om gränsenheten därför inte kan komma åt en offentlig DNS-server ersätter du den med en tillgänglig DNS-serveradress.

Placera daemon.json i /etc/docker katalogen på enheten.

Om platsen redan innehåller en daemon.json fil lägger du till dns-nyckeln i den och sparar filen.

Starta om containermotorn så att uppdateringarna börjar gälla.

sudo systemctl restart docker

Alternativ 2: Ange DNS-server i IoT Edge-distribution per modul

Du kan ange DNS-server för varje moduls createOptions i IoT Edge-distributionen. Till exempel:

"createOptions": {
  "HostConfig": {
    "Dns": [
      "x.x.x.x"
    ]
  }
}

Varning

Om du använder den här metoden och anger fel DNS-adress förlorar edgeAgent anslutningen till IoT Hub och kan inte ta emot nya distributioner för att åtgärda problemet. Du kan lösa problemet genom att installera om IoT Edge-körningen. Innan du installerar en ny instans av IoT Edge måste du ta bort alla edgeAgent-containrar från föregående installation.

Se till att ange den här konfigurationen även för edgeAgent - och edgeHub-modulerna .

Alternativ 3: Skicka platsen för docker-konfigurationsfilen för att kontrollera kommandot

Om IoT Edge installeras som en snap använder du parametern --container-engine-config-file för att ange platsen för Docker-konfigurationsfilen. Om Docker-konfigurationsfilen till exempel finns på /var/snap/docker/current/config/daemon.jsonkör du följande kommando: iotedge check --container-engine-config-file '/var/snap/docker/current/config/daemon.json'.

För närvarande visas varningsmeddelandet fortfarande i utdata från iotedge-kontrollen även efter att du har angett konfigurationsfilens plats. Kontrollera rapporterar felet eftersom IoT Edge-snapen inte har läsbehörighet till Docker-snapen. Om du använder iotedge-kontrollen i versionsprocessen kan du ignorera varningsmeddelandet med hjälp av parametern --ignore container-engine-dns container-engine-logrotate .

Edge Agent-modulen med LTE-anslutningsrapporterna "empty edge agent config" och orsakar "tillfälligt nätverksfel"

Symtom

En enhet som konfigurerats med LTE-anslutning har problem med att starta moduler som definierats i distributionen. EdgeAgent kan inte ansluta till IoT Hub och rapporterar att det uppstod en tom gränsagentkonfiguration och ett tillfälligt nätverksfel.

Orsak

Vissa nätverk har paketkostnader, vilket gör standardnätverket för Docker MTU (1 500) för högt och orsakar paketfragmentering som förhindrar åtkomst till externa resurser.

Lösning

  1. Kontrollera MTU-inställningen för docker-nätverket.

    docker network inspect <network name>

  2. Kontrollera MTU-inställningen för den fysiska nätverksadaptern på enheten.

    ip addr show eth0

Kommentar

MTU:n för docker-nätverket får inte vara högre än MTU:n för enheten. Kontakta din ISP om du vill ha mer information.

Om du ser en annan MTU-storlek för docker-nätverket och enheten kan du prova följande lösning:

  1. Skapa ett nytt nätverk. Exempel:

    docker network create --opt com.docker.network.driver.mtu=1430 test-mtu

    I exemplet är MTU-inställningen för enheten 1430. Därför är MTU för Docker-nätverket inställt på 1430.

  2. Stoppa och ta bort Azure-nätverket.

    docker network rm azure-iot-edge

  3. Återskapa Azure-nätverket.

    docker network create --opt com.docker.network.driver.mtu=1430 azure-iot-edge

  4. Ta bort alla containrar och starta om tjänsten aziot-edged .

    sudo iotedge system stop && sudo docker rm -f $(docker ps -aq -f "label=net.azure-devices.edge.owner=Microsoft.Azure.Devices.Edge.Agent") && sudo iotedge config apply

IoT Edge-agenten kan inte få åtkomst till en moduls avbildning (403)

Symtom

Det går inte att köra en container och edgeAgent-loggarna rapporterar ett 403-fel.

Orsak

IoT Edge-agentmodulen har inte behörighet att komma åt en moduls avbildning.

Lösning

Kontrollera att dina autentiseringsuppgifter för containerregistret är korrekta för enhetsdistributionsmanifestet.

IoT Edge-agenten gör överdrivna identitetsanrop

Symtom

IoT Edge-agenten gör överdrivna identitetsanrop till Azure IoT Hub.

Orsak

Felaktig konfiguration av enhetsdistributionsmanifestet orsakar en misslyckad distribution på enheten. IoT Edge-agentens omprövningslogik fortsätter att försöka distribuera igen. Varje återförsök gör identitetsanrop tills distributionen lyckas. Om distributionsmanifestet till exempel anger en modul-URI som inte finns i containerregistret eller är feltypad, försöker IoT Edge-agenten distribuera igen tills distributionsmanifestet har korrigerats.

Lösning

Verifiera distributionsmanifestet i Azure-portalen. Korrigera eventuella fel och distribuera om manifestet till enheten.

IoT Edge-hubb startar inte

Symtom

Det går inte att starta edgeHub-modulen. Du kan se ett meddelande som något av följande fel i loggarna:

One or more errors occurred.
(Docker API responded with status code=InternalServerError, response=
{\"message\":\"driver failed programming external connectivity on endpoint edgeHub (6a82e5e994bab5187939049684fb64efe07606d2bb8a4cc5655b2a9bad5f8c80):
Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated\"}\n)

Eller

info: edgelet_docker::runtime -- Starting module edgeHub...
warn: edgelet_utils::logging -- Could not start module edgeHub
warn: edgelet_utils::logging --     caused by: failed to create endpoint edgeHub on network nat: hnsCall failed in Win32:
        The process cannot access the file because it is being used by another process. (0x20)

Orsak

En annan process på värddatorn har bundit en port som edgeHub-modulen försöker binda. IoT Edge-hubben mappar portarna 443, 5671 och 8883 för användning i gatewayscenarier. Det går inte att starta modulen om en annan process redan har bundit en av dessa portar.

Lösning

Du kan lösa det här problemet på två sätt:

Om IoT Edge-enheten fungerar som en gatewayenhet måste du hitta och stoppa processen som använder port 443, 5671 eller 8883. Ett fel för port 443 innebär vanligtvis att den andra processen är en webbserver.

Om du inte behöver använda IoT Edge-enheten som en gateway kan du ta bort portbindningarna från edgeHubs modulskapandealternativ. Du kan ändra alternativen för att skapa i Azure-portalen eller direkt i filen deployment.json.

I Azure-portalen:

  1. Gå till din IoT-hubb och välj Enheter under menyn Enhetshantering .

  2. Välj den IoT Edge-enhet som du vill uppdatera.

  3. Välj Ange moduler.

  4. Välj Körtid Inställningar.

  5. I inställningarna för Edge Hub-modulen tar du bort allt från textrutan Alternativ för containerskapande .

  6. Välj Använd för att spara ändringarna och skapa distributionen.

I filen deployment.json:

  1. Öppna den deployment.json fil som du har tillämpat på din IoT Edge-enhet.

  2. edgeHub Hitta inställningarna i avsnittet önskade egenskaper för edgeAgent:

      "edgeHub": {
          "restartPolicy": "always",
          "settings": {
             "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
             "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
          },
          "status": "running",
          "type": "docker"
       }
    
  3. Ta bort linjen createOptions och det avslutande kommatecknet i slutet av image raden före den:

      "edgeHub": {
          "restartPolicy": "always",
          "settings": {
          "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
          "status": "running",
          "type": "docker"
    }
    
  4. Välj Skapa för att tillämpa den på din IoT Edge-enhet igen.

IoT Edge-modulen misslyckas med att skicka ett meddelande till edgeHub och får 404-fel

Symtom

En anpassad IoT Edge-modul kan inte skicka ett meddelande till IoT Edge-hubben med ett 404-fel Module not found . IoT Edge-körningen skriver ut följande meddelande till loggarna:

Error: Time:Thu Jun  4 19:44:58 2018 File:/usr/sdk/src/c/provisioning_client/adapters/hsm_client_http_edge.c Func:on_edge_hsm_http_recv Line:364 executing HTTP request fails, status=404, response_buffer={"message":"Module not found"}u, 04 )

Orsak

IoT Edge-körningen tillämpar processidentifiering för alla moduler som ansluter till edgeHub av säkerhetsskäl. Den verifierar att alla meddelanden som skickas av en modul kommer från modulens huvudprocess-ID. Om ett meddelande skickas av en modul från ett annat process-ID än vad som ursprungligen upprättades avvisas meddelandet med ett 404-felmeddelande.

Lösning

Från och med version 1.0.7 har alla modulprocesser behörighet att ansluta. Mer information finns i versionsändringsloggen 1.0.7.

Om du inte kan uppgradera till 1.0.7 utför du följande steg. Kontrollera att samma process-ID alltid används av den anpassade IoT Edge-modulen för att skicka meddelanden till edgeHub. Se till exempel till i ENTRYPOINT stället för CMD kommandot i Docker-filen. Kommandot CMD leder till ett process-ID för modulen och ett annat process-ID för bash-kommandot som kör huvudprogrammet, men ENTRYPOINT leder till ett enda process-ID.

Stabilitetsproblem på mindre enheter

Symtom

Du kan uppleva stabilitetsproblem på resursbegränsade enheter som Raspberry Pi, särskilt när de används som en gateway. Symtomen är minnesfel i IoT Edge-hubbmodulen, underordnade enheter som inte kan ansluta eller att enheten inte kan skicka telemetrimeddelanden efter några timmar.

Orsak

IoT Edge-hubben, som är en del av IoT Edge-körningen, är optimerad för prestanda som standard och försöker allokera stora mängder minne. Den här optimeringen är inte idealisk för begränsade gränsenheter och kan orsaka stabilitetsproblem.

Lösning

För IoT Edge-hubben anger du en miljövariabel OptimizeForPerformance till false. Det finns två sätt att ange miljövariabler:

I Azure-portalen:

  1. I din IoT Hub väljer du din IoT Edge-enhet och på sidan enhetsinformation och väljer Ange modulkörning>Inställningar.

  2. Skapa en miljövariabel för IoT Edge-hubbmodulen med namnet OptimizeForPerformance med typen True/False som är inställd på False.

  3. Välj Använd för att spara ändringar och välj sedan Granska + skapa.

    Miljövariabeln finns nu i edgeHub egenskapen för distributionsmanifestet:

       "edgeHub": {
          "env": {
                "OptimizeForPerformance": {
                   "value": false
                }
          },
          "restartPolicy": "always",
          "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
          },
          "status": "running",
          "type": "docker"
       }
    
  4. Välj Skapa för att spara ändringarna och distribuera modulen.

Det gick inte att starta säkerhetsdaemonen

Symtom

Säkerhetsdaemonen startar inte och modulcontainrar skapas inte. Och edgeAgentedgeHub andra anpassade moduler startas inte av IoT Edge-tjänsten. I aziot-edged loggar visas det här felet:

  • Det gick inte att starta daemonen: Det gick inte att starta hanteringstjänsten
  • orsakad av: Ett fel uppstod för sökvägen /var/run/iotedge/mgmt.sock
  • orsakad av: Behörighet nekad (os-fel 13)

Orsak

För alla Linux-distributioner utom CentOS 7 är IoT Edge standardkonfiguration att använda systemd socketaktivering. Ett behörighetsfel inträffar om du ändrar konfigurationsfilen så att den inte använder socketaktivering, men lämnar URL:erna som /var/run/iotedge/*.sock, eftersom iotedge användaren inte kan skriva så att /var/run/iotedge den inte kan låsa upp och montera själva socketarna.

Lösning

Du behöver inte inaktivera socketaktivering på en distribution där socketaktivering stöds. Men om du föredrar att inte använda socketaktivering alls, placera socketarna i /var/lib/iotedge/.

  1. Kör systemctl disable iotedge.socket iotedge.mgmt.socket för att inaktivera socketenheterna så att systemd inte startar dem i onödan
  2. Ändra iotedge-konfigurationen så att den används /var/lib/iotedge/*.sock i både connect avsnitten och listen
  3. Om du redan har moduler har de gamla /var/run/iotedge/*.sock monteringarna, så docker rm -f de.

Nätverk

IoT Edge-säkerhetsdaemon misslyckas med ett ogiltigt värddatornamn

Symtom

Försök att kontrollera IoT Edge-säkerhetshanterarens loggar misslyckas och skriver ut följande meddelande:

Error parsing user input data: invalid hostname. Hostname cannot be empty or greater than 64 characters

Orsak

IoT Edge-körningen kan bara stödja värdnamn som är kortare än 64 tecken. Fysiska datorer har vanligtvis inte långa värdnamn, men problemet är vanligare på en virtuell dator. De automatiskt genererade värdnamnen för virtuella Windows-datorer som finns i Azure, i synnerhet, tenderar att vara långa.

Lösning

När du ser det här felet kan du lösa det genom att konfigurera DNS-namnet på den virtuella datorn och sedan ange DNS-namnet som värdnamn i installationskommandot.

  1. Gå till översiktssidan för den virtuella datorn i Azure-portalen.

  2. Öppna konfigurationspanelen genom att välja Inte konfigurerad (om den virtuella datorn är ny) under DNS-namn eller välj ditt befintliga DNS-namn. Om den virtuella datorn redan har konfigurerat ett DNS-namn behöver du inte konfigurera ett nytt.

    Skärmbild av hur du öppnar konfigurationspanelen för ditt DNS-namn.

  3. Ange ett värde för DNS-namnetiketten om du inte redan har en och välj Spara.

  4. Kopiera det nya DNS-namnet, som ska vara i formatet:
    <DNSnamelabel>.<vmlocation.cloudapp.azure.com>.

  5. Öppna konfigurationsfilen på IoT Edge-enheten.

    sudo nano /etc/aziot/config.toml
    
  6. Ersätt värdet hostname för med ditt DNS-namn.

  7. Spara och stäng filen och tillämpa sedan ändringarna på IoT Edge.

    sudo iotedge config apply
    

IoT Edge-modulen rapporterar anslutningsfel

Symtom

IoT Edge-moduler som ansluter direkt till molntjänster, inklusive runtime-moduler, slutar fungera som förväntat och returnerar fel kring anslutnings- eller nätverksfel.

Orsak

Containrar förlitar sig på vidarebefordran av IP-paket för att kunna ansluta till Internet så att de kan kommunicera med molntjänster. Vidarebefordran av IP-paket är aktiverat som standard i Docker, men om det inaktiveras fungerar inte moduler som ansluter till molntjänster som förväntat. Mer information finns i Förstå containerkommunikation i Docker-dokumentationen.

Lösning

Använd följande steg för att aktivera vidarebefordran av IP-paket.

  1. Öppna filen sysctl.conf.

    sudo nano /etc/sysctl.conf
    
  2. Lägg till följande rad i filen.

    net.ipv4.ip_forward=1
    
  3. Spara och stäng filen.

  4. Starta om nätverkstjänsten och Docker-tjänsten för att tillämpa ändringarna.

IoT Edge bakom en gateway kan inte utföra HTTP-begäranden och starta Edge-agentmodulen

Symtom

IoT Edge-körningen är aktiv med en giltig konfigurationsfil, men det går inte att starta edgeAgent-modulen . Kommandot iotedge list returnerar en tom lista. IoT Edge-körningsrapporterna Could not perform HTTP request i loggarna.

Orsak

IoT Edge-enheter bakom en gateway får sina modulbilder från den överordnade IoT Edge-enheten som anges i fältet i parent_hostname konfigurationsfilen. Felet Could not perform HTTP request innebär att den underordnade enheten inte kan nå sin överordnade enhet via HTTP.

Lösning

Kontrollera att den överordnade IoT Edge-enheten kan ta emot inkommande begäranden från den underordnade IoT Edge-enheten. Öppna nätverkstrafik på portarna 443 och 6617 för begäranden som kommer från den underordnade enheten.

IoT Edge bakom en gateway kan inte utföra HTTP-begäranden och starta Edge-agentmodulen

Symtom

IoT Edge-daemonen är aktiv med en giltig konfigurationsfil, men den kan inte starta edgeAgent-modulen. Kommandot iotedge list returnerar en tom lista. IoT Edge-daemonloggrapporten Could not perform HTTP request.

Orsak

IoT Edge-enheter bakom en gateway får sina modulbilder från den överordnade IoT Edge-enheten som anges i fältet i parent_hostname konfigurationsfilen. Felet Could not perform HTTP request innebär att den underordnade enheten inte kan nå sin överordnade enhet via HTTP.

Lösning

Kontrollera att den överordnade IoT Edge-enheten kan ta emot inkommande begäranden från den underordnade IoT Edge-enheten. Öppna nätverkstrafik på portarna 443 och 6617 för begäranden som kommer från den underordnade enheten.

IoT Edge bakom en gateway kan inte ansluta när du migrerar från en IoT-hubb till en annan

Symtom

När du försöker migrera en hierarki med IoT Edge-enheter från en IoT-hubb till en annan kan den överordnade IoT Edge-enheten på den översta nivån ansluta till IoT Hub, men underordnade IoT Edge-enheter kan inte göra det. Loggrapporten Unable to authenticate client downstream-device/$edgeAgent with module credentials.

Orsak

Autentiseringsuppgifterna för nedströmsenheterna uppdaterades inte korrekt när migreringen till den nya IoT-hubben skedde. edgeAgentedgeHub Därför har modulerna angetts ha autentiseringstyp none (standard om de inte anges explicit). Under anslutningen använder modulerna på de underordnade enheterna gamla autentiseringsuppgifter, vilket gör att autentiseringen misslyckas.

Lösning

När du migrerar till den nya IoT-hubben (förutsatt att du inte använder DPS) följer du dessa steg i ordning:

  1. Följ den här guiden för att exportera och sedan importera enhetsidentiteter från den gamla IoT-hubben till den nya
  2. Konfigurera om alla IoT Edge-distributioner och konfigurationer i den nya IoT-hubben
  3. Konfigurera om alla överordnade och underordnade enhetsrelationer i den nya IoT-hubben
  4. Uppdatera varje enhet så att den pekar på det nya IoT Hub-värdnamnet (iothub_hostname under [provisioning] i config.toml)
  5. Om du väljer att undanta autentiseringsnycklar under enhetsexporten konfigurerar du om varje enhet med de nya nycklar som ges av den nya IoT-hubben (device_id_pk under [provisioning.authentication] i config.toml)
  6. Starta först om den överordnade Edge-enheten på den översta nivån och kontrollera att den är igång
  7. Starta om varje enhet på hierarkinivå efter nivå uppifrån och ned

IoT Edge har lågt dataflöde för meddelanden när det är geografiskt avlägset från IoT Hub

Symtom

Azure IoT Edge-enheter som är geografiskt avlägsna från Azure IoT Hub har ett lägre dataflöde än förväntat.

Orsak

Långa svarstider mellan enheten och IoT Hub kan orsaka ett lägre dataflöde än förväntat. IoT Edge använder en standardstorlek för meddelandebatch på 10. Detta begränsar antalet meddelanden som skickas i en enda batch, vilket ökar antalet tur- och returresor mellan enheten och IoT Hub.

Lösning

Prova att öka miljövariabeln IoT Edge Hub MaxUpstreamBatchSize . På så sätt kan fler meddelanden skickas i en enda batch, vilket minskar antalet tur- och returresor mellan enheten och IoT Hub.

Så här anger du miljövariabler för Azure Edge Hub i Azure-portalen:

  1. Gå till din IoT Hub och välj Enheter under menyn Enhetshantering .
  2. Välj den IoT Edge-enhet som du vill uppdatera.
  3. Välj Ange moduler.
  4. Välj Körtid Inställningar.
  5. På fliken Inställningar för Edge Hub-modul lägger du till miljövariabeln MaxUpstreamBatchSize som typ Tal med värdet 20.
  6. Välj Använd.

Nästa steg

Tror du att du har hittat ett fel i IoT Edge-plattformen? Skicka in ett problem så att vi kan fortsätta att förbättra.

Om du har fler frågor skapar du en supportbegäran om hjälp.