Megosztás a következőn keresztül:


IoT Edge-eszköz konfigurálása proxykiszolgálón keresztüli kommunikációra

A következőkre vonatkozik:igen ikon IoT Edge 1.1

Fontos

Az IoT Edge 1.1 támogatási dátumának vége 2022. december 13.,. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. További információ az IoT Edge legújabb verziójára való frissítésről: IoT Edge frissítése.

Az IoT Edge-eszközök HTTPS-kéréseket küldenek az IoT Hubbal való kommunikációhoz. Ha az eszköz proxykiszolgálót használó hálózathoz csatlakozik, konfigurálnia kell az IoT Edge-futtatókörnyezetet a kiszolgálón keresztüli kommunikációhoz. A proxykiszolgálók az egyes IoT Edge-modulokra is hatással lehetnek, ha olyan HTTP- vagy HTTPS-kéréseket végeznek, amelyek nem az IoT Edge-központon keresztül vannak irányítva.

Ez a cikk az alábbi négy lépést ismerteti egy proxykiszolgáló mögötti IoT Edge-eszköz konfigurálásához és kezeléséhez:

  1. Az IoT Edge-futtatókörnyezet telepítése az eszközön

    Az IoT Edge telepítési szkriptjei lekérik a csomagokat és a fájlokat az internetről, így az eszköznek a proxykiszolgálón keresztül kell kommunikálnia a kérések teljesítéséhez. Windows-eszközök esetén a telepítési szkript offline telepítési lehetőséget is biztosít.

    Ez a lépés egyszeri folyamat az IoT Edge-eszköz első beállításakor történő konfigurálásához. Ugyanezekre a kapcsolatokra is szükség van az IoT Edge-futtatókörnyezet frissítésekor.

  2. Az IoT Edge és a tároló futtatókörnyezetének konfigurálása az eszközön

    Az IoT Edge felelős az IoT Hubbal folytatott kommunikációért. A tároló futtatókörnyezete felelős a tárolókezelésért, ezért kommunikál a tárolóregisztrációs adatbázisokkal. Mindkét összetevőnek webes kéréseket kell küldenie a proxykiszolgálón keresztül.

    Ez a lépés egyszeri folyamat az IoT Edge-eszköz első beállításakor történő konfigurálásához.

  3. Az IoT Edge-ügynök tulajdonságainak konfigurálása az eszköz konfigurációs fájljában

    Az IoT Edge démon először elindítja az edgeAgent modult. Ezután az edgeAgent modul lekéri az üzembehelyezési jegyzékfájlt az IoT Hubról, és elindítja az összes többi modult. Ahhoz, hogy az IoT Edge-ügynök az IoT Hubhoz való kezdeti kapcsolatot létesítse, manuálisan konfigurálja az edgeAgent modul környezeti változóit az eszközön. A kezdeti kapcsolat után távolról is konfigurálhatja az edgeAgent modult.

    Ez a lépés egyszeri folyamat az IoT Edge-eszköz első beállításakor történő konfigurálásához.

  4. Minden jövőbeli modultelepítéshez állítsa be a környezeti változókat a proxyn keresztül kommunikáló modulokhoz

    Miután az IoT Edge-eszköz be van állítva, és a proxykiszolgálón keresztül csatlakozik az IoT Hubhoz, meg kell őriznie a kapcsolatot az összes jövőbeli modultelepítésben.

    Ez a lépés egy folyamatban lévő folyamat, amely távolról történik, így minden új modul vagy üzembe helyezési frissítés fenntartja az eszköz proxykiszolgálón keresztüli kommunikációjának képességét.

A proxy URL-címének ismerete

Mielőtt elkezdené a jelen cikk lépéseit, ismernie kell a proxy URL-címét.

A proxy URL-címeinek formátuma a következő: protocol://proxy_host:proxy_port.

  • A protokoll HTTP vagy HTTPS. A Docker-démon a tárolóregisztrációs beállításjegyzék beállításaitól függően bármelyik protokollt használhatja, de az IoT Edge démon- és futtatókörnyezeti tárolóknak mindig HTTP-t kell használniuk a proxyhoz való csatlakozáshoz.

  • A proxy_host a proxykiszolgáló címe. Ha a proxykiszolgáló hitelesítést igényel, a hitelesítő adatokat a proxy gazdagép részeként a következő formátumban adhatja meg: user:password@proxy_host.

  • A proxy_port az a hálózati port, amelyen a proxy válaszol a hálózati forgalomra.

Az IoT Edge telepítése proxyn keresztül

Függetlenül attól, hogy az IoT Edge-eszköz Windows vagy Linux rendszeren fut-e, a telepítési csomagokat a proxykiszolgálón keresztül kell elérnie. Az operációs rendszertől függően kövesse az IoT Edge-futtatókörnyezet proxykiszolgálón keresztüli telepítéséhez szükséges lépéseket.

Linux-eszközök

Ha az IoT Edge-futtatókörnyezetet Linux-eszközön telepíti, konfigurálja a csomagkezelőt úgy, hogy a proxykiszolgálón keresztül férhessen hozzá a telepítőcsomaghoz. Beállíthatja például a http-proxy használatát az apt-get beállítással. A csomagkezelő konfigurálása után kövesse a szokásos módon a Azure IoT Edge környezet telepítési utasításait.

Windows-eszközök, amelyek a Windows rendszeren futó Linuxra készült IoT Edge-et használják

Ha az IoT Edge-futtatókörnyezetet a Linuxhoz készült IoT Edge használatával telepíti Windows rendszeren, az IoT Edge alapértelmezés szerint telepítve lesz a Linux rendszerű virtuális gépen. Nincs szükség további telepítési vagy frissítési lépésekre.

Windows-tárolókat használó Windows-eszközök

Ha az IoT Edge-futtatókörnyezetet Windows-eszközön telepíti, kétszer kell végigmennie a proxykiszolgálón. Az első kapcsolat letölti a telepítő szkriptfájlját, a második pedig a telepítés során a szükséges összetevők letöltéséhez. Konfigurálhatja a proxyadatokat a Windows beállításaiban, vagy közvetlenül a PowerShell-parancsokban is megadhatja a proxyadatokat.

Az alábbi lépések egy windowsos telepítés példáját mutatják be az -proxy argumentum használatával:

  1. Az Invoke-WebRequest parancsnak proxyadatokra van szüksége a telepítő szkriptjének eléréséhez. Ezután a Deploy-IoTEdge parancsnak szüksége van a proxyadatokra a telepítési fájlok letöltéséhez.

    . {Invoke-WebRequest -proxy <proxy URL> -useb aka.ms/iotedge-win} | Invoke-Expression; Deploy-IoTEdge -proxy <proxy URL>
    
  2. Az Initialize-IoTEdge parancsnak nem kell végighaladnia a proxykiszolgálón, ezért a második lépéshez csak a Invoke-WebRequest proxyadataira van szükség.

    . {Invoke-WebRequest -proxy <proxy URL> -useb aka.ms/iotedge-win} | Invoke-Expression; Initialize-IoTEdge
    

Ha a proxykiszolgálóhoz olyan bonyolult hitelesítő adatokkal rendelkezik, amelyeket nem lehet az URL-címben szerepeltetni, használja a -ProxyCredential paramétert a -InvokeWebRequestParameters. Például

$proxyCredential = (Get-Credential).GetNetworkCredential()
. {Invoke-WebRequest -proxy <proxy URL> -ProxyCredential $proxyCredential -useb aka.ms/iotedge-win} | Invoke-Expression; `
Deploy-IoTEdge -InvokeWebRequestParameters @{ '-Proxy' = '<proxy URL>'; '-ProxyCredential' = $proxyCredential }

A proxyparaméterekről további információt az Invoke-WebRequest című témakörben talál. További információ a Windows telepítési paramétereiről: WindowsIoT Edge-hez készült PowerShell-szkriptek.

Az IoT Edge és a Moby konfigurálása

Az IoT Edge az IoT Edge-eszközön futó két démonra támaszkodik. A Moby démon webes kéréseket intéz a tárolólemezképek tárolóregisztrációs adatbázisokból való lekéréséhez. Az IoT Edge démon webes kéréseket küld az IoT Hubbal való kommunikációra.

A Moby és az IoT Edge démonokat úgy kell konfigurálni, hogy a proxykiszolgálót használják a folyamatos eszközfunkciókhoz. Ez a lépés az IoT Edge-eszközön történik az eszköz kezdeti beállítása során.

Moby démon

Mivel a Moby a Dockerre épül, tekintse meg a Docker dokumentációját a Moby démon környezeti változókkal való konfigurálásához. A legtöbb tárolóregisztrációs adatbázis (beleértve a DockerHubot és az Azure Container Registriest) támogatja a HTTPS-kérelmeket, így a beállított paraméter HTTPS_PROXY. Ha olyan beállításjegyzékből kér le lemezképeket, amely nem támogatja az átviteli réteg biztonságát (TLS), akkor be kell állítania a HTTP_PROXY paramétert.

Válassza ki az IoT Edge-eszköz operációs rendszerére vonatkozó cikket:

IoT Edge háttérfolyamat

Az IoT Edge démon a Moby démonhoz hasonlóan van konfigurálva. Az alábbi lépésekkel beállíthat egy környezeti változót a szolgáltatáshoz az operációs rendszer alapján.

Az IoT Edge démon mindig HTTPS használatával küld kéréseket az IoT Hubnak.

Linux

Nyisson meg egy szerkesztőt a terminálban az IoT Edge démon konfigurálásához.

sudo systemctl edit iotedge

Írja be a következő szöveget, és cserélje le <a proxy URL-címét> a proxykiszolgáló címére és portára. Ezután mentse és lépjen ki.

[Service]
Environment=https_proxy=<proxy URL>

Frissítse a szolgáltatáskezelőt az IoT Edge új konfigurációjának felvételéhez.

sudo systemctl daemon-reload

Indítsa újra az IoT Edge-et a módosítások érvénybe lépéséhez.

sudo systemctl restart iotedge

Ellenőrizze, hogy a környezeti változó létrejött-e, és az új konfiguráció be lett-e töltve.

systemctl show --property=Environment iotedge

Windows rendszeren futó Linuxra készült IoT Edge

Jelentkezzen be a Linuxhoz készült IoT Edge-be Windows rendszerű virtuális gépen:

Connect-EflowVm

Az IoT Edge démon konfigurálásához kövesse a fenti Linux-szakasz lépéseit.

Windows, amely Windows-tárolókat használ

Nyisson meg egy PowerShell-ablakot rendszergazdaként, és futtassa a következő parancsot a beállításjegyzék szerkesztéséhez az új környezeti változóval. Cserélje le <a proxy URL-t> a proxykiszolgáló címére és portra.

reg add HKLM\SYSTEM\CurrentControlSet\Services\iotedge /v Environment /t REG_MULTI_SZ /d https_proxy=<proxy URL>

Indítsa újra az IoT Edge-et a módosítások érvénybe lépéséhez.

Restart-Service iotedge

Az IoT Edge-ügynök konfigurálása

Az IoT Edge-ügynök az első modul, amely bármely IoT Edge-eszközön elindul. Első alkalommal indult el az IoT Edge konfigurációs fájljában található információk alapján. Az IoT Edge-ügynök ezután csatlakozik az IoT Hubhoz az üzembehelyezési jegyzékek lekéréséhez, amelyek deklarálják, hogy milyen más modulokat kell üzembe helyezni az eszközön.

Ez a lépés egyszer történik az IoT Edge-eszközön a kezdeti eszközbeállítás során.

  1. Nyissa meg a config.yaml fájlt az IoT Edge-eszközön. Linux rendszereken ez a fájl a /etc/iotedge/config.yaml. Windows rendszereken ez a fájl C:\ProgramData\iotedge\config.yaml. A konfigurációs fájl védett, ezért rendszergazdai jogosultságokra van szüksége a hozzáféréshez. Linux rendszereken használja a sudo parancsot, mielőtt megnyitná a fájlt az előnyben részesített szövegszerkesztőben. Windows rendszeren nyisson meg egy szövegszerkesztőt, például a Jegyzettömbet rendszergazdaként, majd nyissa meg a fájlt.

  2. A config.yaml fájlban keresse meg az Edge Agent modul specifikációját szakaszt. Az IoT Edge-ügynökdefiníció tartalmaz egy env paramétert, ahol környezeti változókat adhat hozzá.

  3. Távolítsa el az env paraméter helyőrzőit tartalmazó kapcsos zárójeleket, és adja hozzá az új változót egy új sorhoz. Ne feledje, hogy a YAML-behúzások két szóközt jelentenek.

    https_proxy: "<proxy URL>"
    
  4. Az IoT Edge-futtatókörnyezet alapértelmezés szerint AMQP használatával kommunikál az IoT Hubbal. Egyes proxykiszolgálók blokkolják az AMQP-portokat. Ha ez a helyzet, akkor az edgeAgentet is konfigurálnia kell az AMQP WebSocketen keresztüli használatára. Adjon hozzá egy második környezeti változót.

    UpstreamProtocol: "AmqpWs"
    

    edgeAgent definíció környezeti változókkal

  5. Mentse a módosításokat a config.yaml fájlba, és zárja be a szerkesztőt. Indítsa újra az IoT Edge-et a módosítások érvénybe lépéséhez.

    • Linux és IoT Edge Linuxra Windows alatt

      sudo systemctl restart iotedge
      
    • Windows-tárolókat használó Windows:

      Restart-Service iotedge
      
  1. Adja hozzá a https_proxy paramétert a környezeti változók szakaszához, és állítsa be a proxy URL-címét annak értékeként.

    [agent]
    name = "edgeAgent"
    type = "docker"
    
    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.4"
    
    [agent.env]
    # "RuntimeLogLevel" = "debug"
    # "UpstreamProtocol" = "AmqpWs"
    "https_proxy" = "<proxy URL>"
    
  2. Az IoT Edge-futtatókörnyezet alapértelmezés szerint AMQP használatával kommunikál az IoT Hubbal. Egyes proxykiszolgálók blokkolják az AMQP-portokat. Ha ez a helyzet, akkor az edgeAgentet is konfigurálnia kell az AMQP WebSocketen keresztüli használatára. Bontsa ki a UpstreamProtocol paramétert.

    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.4"
    
    [agent.env]
    # "RuntimeLogLevel" = "debug"
    "UpstreamProtocol" = "AmqpWs"
    "https_proxy" = "<proxy URL>"
    
  3. Mentse a módosításokat, és zárja be a szerkesztőt. Alkalmazza a legújabb módosításokat.

    sudo iotedge config apply
    
  4. Ellenőrizze, hogy a proxybeállításokat a docker inspect edgeAgent használatával a Env szakaszban propagálja-e. Ha nem, a tárolót újra létre kell hozni.

    sudo docker rm -f edgeAgent
    
  5. Az IoT Edge-futtatókörnyezetnek egy percen belül újra létre kell hoznia edgeAgent . Miután edgeAgent tároló újra fut, docker inspect edgeAgent és ellenőrizze, hogy a proxybeállítások megegyeznek-e a konfigurációs fájllal.

Üzembehelyezési jegyzékek konfigurálása

Miután az IoT Edge-eszköz úgy van konfigurálva, hogy működjön a proxykiszolgálóval, továbbra is deklarálnia kell a HTTPS_PROXY környezeti változót a jövőbeli üzembehelyezési jegyzékekben. Az üzembehelyezési jegyzékeket az Azure Portal varázslóval vagy egy üzembehelyezési jegyzék JSON-fájljának szerkesztésével szerkesztheti.

Mindig konfigurálja a két futtatókörnyezeti modult, az edgeAgentet és az edgeHubot a proxykiszolgálón keresztüli kommunikációhoz, hogy fenntarthassák a kapcsolatot az IoT Hubbal. Ha eltávolítja a proxyadatokat az edgeAgent modulból, a kapcsolat visszaállításának egyetlen módja a konfigurációs fájl szerkesztése az eszközön, az előző szakaszban leírtak szerint.

Az edgeAgent és edgeHub modulok mellett más moduloknak is szükségük lehet a proxykonfigurációra. Az IoT Hubon (például blobtárolón) kívül az Azure-erőforrások eléréséhez szükséges moduloknak rendelkezniük kell az üzembehelyezési jegyzékfájlban megadott HTTPS_PROXY változóval.

Az alábbi eljárás az IoT Edge-eszköz teljes élettartama alatt alkalmazható.

Azure Portal

Amikor a Modulok beállítása varázslóval hoz létre üzembe helyezéseket az IoT Edge-eszközökhöz, minden modul rendelkezik egy Környezeti változók szakaszsal, ahol proxykiszolgáló-kapcsolatokat konfigurálhat.

Az IoT Edge-ügynök és az IoT Edge Hub-modulok konfigurálásához válassza a futtatókörnyezet beállításai lehetőséget a varázsló első lépésében.

Speciális Edge-futtatókörnyezeti beállítások konfigurálása

Adja hozzá a https_proxy környezeti változót az IoT Edge-ügynökhöz és az IoT Edge-központ moduldefinícióihoz is. Ha az UpstreamProtocol környezeti változót az IoT Edge-eszköz konfigurációs fájljában is szerepelteti, adja hozzá az IoT Edge-ügynök moduldefiníciójához is.

Https_proxy környezeti változó beállítása

Az üzembehelyezési jegyzékbe felvett összes többi modul ugyanazt a mintát követi.

JSON üzembehelyezési jegyzékfájlok

Ha az IoT Edge-eszközök üzembe helyezését a Visual Studio Code sablonjaival vagy manuálisan JSON-fájlok létrehozásával hozza létre, a környezeti változókat közvetlenül az egyes moduldefiníciókhoz is hozzáadhatja.

Használja a következő JSON-formátumot:

"env": {
    "https_proxy": {
        "value": "<proxy URL>"
    }
}

A környezeti változók belefoglalásával a moduldefiníciónak az alábbi EdgeHub-példához hasonlóan kell kinéznie:

"edgeHub": {
    "type": "docker",
    "settings": {
        "image": "mcr.microsoft.com/azureiotedge-hub:1.1",
        "createOptions": "{}"
    },
    "env": {
        "https_proxy": {
            "value": "http://proxy.example.com:3128"
        }
    },
    "status": "running",
    "restartPolicy": "always"
}

Ha az UpstreamProtocol környezeti változót az IoT Edge-eszközön található confige.yaml fájlba is felvette, adja hozzá az IoT Edge-ügynök moduldefiníciójához is.

"env": {
    "https_proxy": {
        "value": "<proxy URL>"
    },
    "UpstreamProtocol": {
        "value": "AmqpWs"
    }
}

Forgalomellenőrző proxyk használata

Egyes proxyk, mint például a Zscaler , meg tudják vizsgálni a TLS által titkosított forgalmat. A TLS forgalomvizsgálata során a proxy által visszaadott tanúsítvány nem a célkiszolgáló tanúsítványa, hanem a proxy saját főtanúsítványa által aláírt tanúsítvány. Alapértelmezés szerint a proxy tanúsítványát nem megbízhatóként kezelik az IoT Edge-modulok (beleértve az edgeAgent és edgeHub), és a TLS kézfogás meghiúsul.

Ennek megoldásához a proxy főtanúsítványának megbízhatónak kell lennie mind az operációs rendszer, mind az IoT Edge-modulok számára.

  1. Konfigurálja a proxy tanúsítványt a gazdagép operációs rendszerének megbízható gyökértanúsítvány-tárolójában. A főtanúsítvány telepítéséről további információt a legfelső szintű hitelesítésszolgáltató telepítése az operációsrendszer-tanúsítványtárolóba című témakörben talál.

  2. Konfigurálja az IoT Edge-eszközt úgy, hogy proxykiszolgálón keresztül kommunikáljon a megbízhatósági csomag tanúsítványára hivatkozva. A megbízhatósági csomag konfigurálásáról további információt a megbízható legfelső szintű hitelesítésszolgáltató (megbízhatósági csomag) kezelése című témakörben talál.

Az IoT Edge által nem felügyelt tárolók forgalomvizsgálati proxytámogatásának konfigurálásához forduljon a proxyszolgáltatóhoz.

Az IoT Edge által kommunikáló célhelyek teljes tartományneve (FQDN-jei)

Ha a proxy rendelkezik olyan tűzfallal, amely megköveteli az összes teljes tartománynév engedélyezését az internetkapcsolathoz, tekintse át a listát IoT Edge-eszközök kapcsolatainak engedélyezése a hozzáadni kívánt teljes tartománynevek meghatározásához.

Következő lépések

További információ az IoT Edge-futtatókörnyezet szerepköreiről.

Az Azure IoT Edge gyakori problémáival és megoldásaival kapcsolatos telepítési és konfigurációs hibák elhárítása