Sdílet prostřednictvím


Konfigurace zařízení IoT Edge tak, aby komunikovalo přes proxy server

Platí pro:Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5

Důležité

Podporovanou verzí je IoT Edge 1.5 LTS. IoT Edge 1.4 LTS je konec životnosti od 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Zařízení IoT Edge odesílají požadavky HTTPS ke komunikaci se službou IoT Hub. Pokud se vaše zařízení připojí k síti, která používá proxy server, nakonfigurujte modul runtime IoT Edge tak, aby komunikuje přes server. Proxy servery můžou mít vliv také na jednotlivé moduly IoT Edge, pokud provedou požadavky HTTP nebo HTTPS, které nejsou směrovány přes centrum IoT Edge.

Tento článek vysvětluje čtyři kroky konfigurace a správy zařízení IoT Edge za proxy serverem:

  1. Instalace modulu runtime IoT Edge na zařízení

    Instalační skripty IoT Edge načítají balíčky a soubory z internetu, takže zařízení komunikuje přes proxy server, aby tyto požadavky vyřídilo. Instalační skript pro zařízení s Windows také poskytuje možnost offline instalace.

    Tento krok je jednorázový proces konfigurace zařízení IoT Edge při prvním nastavení. Při aktualizaci modulu runtime IoT Edge také potřebujete stejná připojení.

  2. Konfigurace IoT Edge a modulu runtime kontejneru na vašem zařízení

    IoT Edge zpracovává komunikaci se službou IoT Hub. Modul runtime kontejneru spravuje kontejnery a komunikuje s registry kontejnerů. Obě tyto komponenty musí provádět webové požadavky prostřednictvím proxy serveru.

    Tento krok je jednorázový proces konfigurace zařízení IoT Edge při prvním nastavení.

  3. Konfigurace vlastností agenta IoT Edge v konfiguračním souboru na vašem zařízení

    Proces démon IoT Edge nejprve spustí modul edgeAgent. Pak modul edgeAgent načte manifest nasazení ze služby IoT Hub a spustí všechny ostatní moduly. Ručně nakonfigurujte proměnné prostředí modulu edgeAgent na zařízení, aby agent IoT Edge navázal počáteční připojení ke službě IoT Hub. Po počátečním připojení můžete vzdáleně nakonfigurovat modul edgeAgent.

    Tento krok je jednorázový proces konfigurace zařízení IoT Edge při prvním nastavení.

  4. Pro všechna budoucí nasazení modulů nastavte proměnné prostředí pro všechny moduly komunikující prostřednictvím proxy serveru.

    Po nastavení a připojení zařízení IoT Edge ke službě IoT Hub prostřednictvím proxy serveru udržujte připojení ve všech budoucích nasazeních modulů.

    Tento krok probíhá vzdáleně, takže každá nová aktualizace modulu nebo aktualizace nasazení udržuje schopnost zařízení komunikovat prostřednictvím proxy serveru.

Seznámení s adresou URL proxy serveru

Než začnete s kroky v tomto článku, znáte adresu URL proxy serveru.

Adresy URL proxy serveru používají následující formát: protocol://proxy_host:proxy_port.

  • Protokol je HTTP nebo HTTPS. Démon Dockeru může v závislosti na nastavení registru kontejneru používat jeden protokol, ale kontejnery démon a modulu runtime IoT Edge vždy používají protokol HTTP pro připojení k proxy serveru.

  • Proxy_host je adresa proxy serveru. Pokud proxy server vyžaduje ověření, zadejte své přihlašovací údaje jako součást hostitele proxy serveru v následujícím formátu: user:password@proxy_host.

  • Proxy_port je síťový port, na kterém proxy server reaguje na provoz.

Instalace IoT Edge prostřednictvím proxy serveru

Bez ohledu na to, jestli vaše zařízení IoT Edge běží ve Windows nebo Linuxu, přejděte k instalačním balíčkům prostřednictvím proxy serveru. V závislosti na vašem operačním systému nainstalujte modul runtime IoT Edge prostřednictvím proxy serveru.

Zařízení s Linuxem

Pokud instalujete modul runtime IoT Edge na zařízení s Linuxem, nastavte správce balíčků tak, aby pro přístup k instalačnímu balíčku používal proxy server. Můžete například nastavit apt-get pro použití http-proxy. Po nastavení správce balíčků postupujte podle pokynů v Instalace modulu runtime Azure IoT Edge.

Zařízení s Windows využívající IoT Edge pro Linux ve Windows

Pokud instalujete modul runtime IoT Edge pomocí IoT Edge pro Linux ve Windows, modul runtime IoT Edge se ve výchozím nastavení nainstaluje na virtuální počítač s Linuxem. Nemusíte instalovat ani aktualizovat žádné další kroky.

Zařízení s Windows využívající kontejnery Windows

Pokud instalujete modul runtime IoT Edge na zařízení s Windows, musíte dvakrát projít proxy serverem. První připojení stáhne soubor skriptu instalačního programu a druhé připojení stáhne potřebné součásti během instalace. Informace o proxy serveru můžete nakonfigurovat v nastavení windows nebo zahrnout informace o proxy serveru přímo do příkazů PowerShellu.

Následující kroky ukazují příklad instalace systému Windows pomocí argumentu -proxy :

  1. Příkaz Invoke-WebRequest potřebuje informace o proxy serveru pro přístup ke skriptu instalačního programu. Potom příkaz Deploy-IoTEdge potřebuje informace o proxy serveru ke stažení instalačních souborů.

    . {Invoke-WebRequest -proxy <proxy URL> -useb aka.ms/iotedge-win} | Invoke-Expression; Deploy-IoTEdge -proxy <proxy URL>
    
  2. Příkaz Initialize-IoTEdge nemusí procházet proxy serverem, takže druhý krok vyžaduje pouze informace o proxy serveru pro Invoke-WebRequest.

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

Pokud jsou přihlašovací údaje proxy serveru složité a nejde je zahrnout do adresy URL, použijte -ProxyCredential parametr v rámci -InvokeWebRequestParameters. Příklad:

$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 }

Další informace o parametrech proxy serveru naleznete v tématu Invoke-WebRequest.

Konfigurace IoT Edge a Moby

IoT Edge používá dva démony spuštěné na zařízení IoT Edge. Démon Moby načítá image kontejnerů z registrů kontejnerů. Démon IoT Edge komunikuje se službou IoT Hub.

Nakonfigurujte démony Moby i IoT Edge tak, aby používaly proxy server pro průběžné funkce zařízení. Tento krok proveďte na zařízení IoT Edge během počátečního nastavení.

Démon Moby

Protože je Moby založený na Dockeru, přečtěte si dokumentaci Dockeru ke konfiguraci démona Moby s proměnnými prostředí. Většina registrů kontejnerů, včetně DockerHubu a Azure Container Registry, podporuje požadavky HTTPS, takže nastavte parametr HTTPS_PROXY . Pokud načítáte image z registru, který nepodporuje protokol TLS (Transport Layer Security), měli byste nastavit parametr HTTP_PROXY .

Vyberte článek, který se týká operačního systému zařízení IoT Edge:

Démon IoT Edge

Démon IoT Edge je podobný démonu Moby. Pomocí následujícího postupu nastavte proměnnou prostředí pro službu na základě vašeho operačního systému.

Proces démon IoT Edge vždy používá protokol HTTPS k odesílání požadavků do IoT Hubu.

Operační systém Linux

V terminálu otevřete editor pro konfiguraci démona IoT Edge.

sudo systemctl edit aziot-edged

Zadejte následující text a nahraďte <adresu URL> proxy serveru adresou a portem proxy serveru. Pak uložte a ukončete.

[Service]
Environment="https_proxy=<proxy URL>"

Od verze 1.2 používá IoT Edge službu identit IoT ke zpracování zřizování zařízení pomocí ioT Hubu nebo služby IoT Hub Device Provisioning. Otevřete editor v terminálu a nakonfigurujte démona služby identit IoT.

sudo systemctl edit aziot-identityd

Zadejte následující text a nahraďte <adresu URL> proxy serveru adresou a portem proxy serveru. Pak uložte a ukončete.

[Service]
Environment="https_proxy=<proxy URL>"

Aktualizujte správce služeb, aby se obnovily nové konfigurace.

sudo systemctl daemon-reload

Restartujte systémové služby IoT Edge, aby se změny použily u obou démonů.

sudo iotedge system restart

Ověřte, že jsou k dispozici proměnné prostředí a nová konfigurace.

systemctl show --property=Environment aziot-edged
systemctl show --property=Environment aziot-identityd

Windows využívající IoT Edge pro Linux ve Windows

Přihlaste se k IoT Edge pro Linux na virtuálním počítači s Windows:

Connect-EflowVm

Ke konfiguraci démona IoT Edge použijte stejný postup jako v části Linux tohoto článku.

Windows využívající kontejnery Windows

Otevřete okno PowerShellu jako správce a spuštěním následujícího příkazu upravte registr pomocí nové proměnné prostředí. Nahraďte <adresu URL> proxy serveru adresou a portem proxy serveru.

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

Restartujte IoT Edge, aby se změny projevily.

Restart-Service iotedge

Konfigurace agenta IoT Edge

Agent IoT Edge je prvním modulem, který se spustí na jakémkoli zařízení IoT Edge. Tento modul se spustí poprvé na základě informací v konfiguračním souboru IoT Edge. Agent IoT Edge se pak připojí ke službě IoT Hub a načte manifesty nasazení. Manifest deklaruje, které další moduly má zařízení nasadit.

Tento krok probíhá jednou na zařízení IoT Edge během počátečního nastavení zařízení.

  1. Otevřete konfigurační soubor na zařízení IoT Edge: /etc/aziot/config.toml. Pro přístup ke konfiguračnímu souboru potřebujete oprávnění správce. V systémech Linux použijte sudo příkaz před otevřením souboru v preferovaném textovém editoru.

  2. V konfiguračním souboru vyhledejte [agent] část, která obsahuje všechny informace o konfiguraci modulu edgeAgent, které se mají použít při spuštění. Zkontrolujte, jestli [agent] oddíl neobsahuje komentáře. [agent] Pokud oddíl chybí, přidejte ho do souboru config.toml. Definice agenta IoT Edge obsahuje [agent.env] pododdíl, do kterého můžete přidat proměnné prostředí.

  3. Přidejte parametr https_proxy do oddílu proměnných prostředí a jako jeho hodnotu nastavte adresu URL proxy serveru.

    [agent]
    name = "edgeAgent"
    type = "docker"
    
    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
    [agent.env]
    # RuntimeLogLevel = "debug"
    # UpstreamProtocol = "AmqpWs"
    https_proxy = "<proxy URL>"
    
  4. Modul runtime IoT Edge používá ve výchozím nastavení ke komunikaci se službou IoT Hub protokol AMQP. Některé proxy servery blokují porty AMQP. Pokud tomu tak je, musíte také nakonfigurovat edgeAgent tak, aby používal AMQP přes WebSocket. Odeberte komentář z parametru UpstreamProtocol .

    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
    [agent.env]
    # RuntimeLogLevel = "debug"
    UpstreamProtocol = "AmqpWs"
    https_proxy = "<proxy URL>"
    
  5. Přidejte parametr https_proxy do oddílu proměnných prostředí a nastavte adresu URL proxy serveru jako její hodnotu.

    [agent]
    name = "edgeAgent"
    type = "docker"
    
    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
    [agent.env]
    # RuntimeLogLevel = "debug"
    # UpstreamProtocol = "AmqpWs"
    https_proxy = "<proxy URL>"
    
  6. Modul runtime IoT Edge ve výchozím nastavení používá AMQP ke komunikaci se službou IoT Hub. Některé proxy servery blokují porty AMQP. Pokud tomu tak je, musíte také nakonfigurovat edgeAgent tak, aby používal AMQP přes WebSocket. Odkomentujte UpstreamProtocol parametr.

    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
    [agent.env]
    # RuntimeLogLevel = "debug"
    UpstreamProtocol = "AmqpWs"
    https_proxy = "<proxy URL>"
    
  7. Uložte změny a zavřete editor. Použijte změny.

    sudo iotedge config apply
    
  8. Ověřte, že se nastavení proxy serveru používá v docker inspect edgeAgentEnv části. Pokud ne, musíte kontejner vytvořit znovu.

    sudo docker rm -f edgeAgent
    
  9. Během minuty se IoT Edge runtime znovu vytvoří edgeAgent. Po opětovném edgeAgent spuštění kontejneru docker inspect edgeAgent pomocí příkazu ověřte, že nastavení proxy serveru odpovídá konfiguračnímu souboru.

Konfigurace manifestů nasazení

Po nakonfigurování zařízení IoT Edge pro práci s proxy serverem deklarujte proměnnou prostředí HTTPS_PROXY v budoucích manifestech nasazení. Manifesty nasazení můžete upravit pomocí průvodce webu Azure Portal nebo úpravou souboru JSON manifestu nasazení.

Vždy nakonfigurujte dva moduly modulu runtime, edgeAgent a edgeHub, aby komunikovali přes proxy server, aby udržovaly připojení ke službě IoT Hub. Pokud odeberete informace o proxy serveru z modulu edgeAgent, jediným způsobem, jak znovu vytvořit připojení, je upravit konfigurační soubor v zařízení, jak je popsáno v předchozí části.

Kromě modulů edgeAgent a edgeHub můžou další moduly potřebovat konfiguraci proxy serveru. Moduly, které přistupují k prostředkům Azure kromě IoT Hubu, jako je úložiště objektů blob, musí v souboru manifestu nasazení určit proměnnou HTTPS_PROXY.

Tento postup platí po celou dobu životnosti zařízení IoT Edge.

portál Azure

Když k vytváření nasazení pro zařízení IoT Edge použijete Průvodce nastavením modulů , každý modul má oddíl Proměnné prostředí, kde můžete nakonfigurovat připojení proxy serveru.

Pokud chcete nakonfigurovat agenta IoT Edge a moduly centra IoT Edge, vyberte v prvním kroku průvodce nastavení modulu runtime.

Snímek obrazovky znázorňuje, jak nakonfigurovat upřesňující nastavení modulu runtime Edge

Přidejte proměnnou prostředí https_proxy do definice nastavení modulu runtime pro oba moduly: agenta IoT Edge a IoT Edge hub. Pokud do konfiguračního souboru v zařízení IoT Edge zahrnete proměnnou prostředí UpstreamProtocol , přidejte ji také do definice modulu agenta IoT Edge.

Všechny ostatní moduly, které přidáte do manifestu nasazení, se řídí stejným vzorem. Výběrem možnosti Použít změny uložte.

Soubory manifestu nasazení JSON

Pokud vytváříte nasazení pro zařízení IoT Edge pomocí šablon v editoru Visual Studio Code nebo ručně vytváříte soubory JSON, můžete proměnné prostředí přidat přímo do každé definice modulu. Pokud jste je nepřidali na webu Azure Portal, přidejte je sem do souboru manifestu JSON. Nahraďte <proxy URL> hodnotou.

Použijte následující formát JSON:

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

V zahrnutých proměnných prostředí vypadá definice modulu jako v následujícím příkladu edgeHubu:

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

Pokud jste do souboru config.yaml v zařízení IoT Edge zahrnuli proměnnou prostředí UpstreamProtocol , přidejte ji také do definice modulu agenta IoT Edge.

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

Práce s proxy servery kontrolujícími provoz

Některé proxy servery, jako je Zscaler , můžou kontrolovat provoz šifrovaný protokolem TLS. Během kontroly provozu protokolu TLS certifikát vrácený proxy serverem není certifikát z cílového serveru, ale certifikát podepsaný vlastním kořenovým certifikátem proxy serveru. Moduly IoT Edge (včetně edgeAgent a edgeHubu) ve výchozím nastavení nedůvěřují certifikátu tohoto proxy serveru a metoda handshake protokolu TLS selže.

Pokud chcete vyřešit neúspěšný handshake, nastavte operační systém i moduly IoT Edge, aby důvěřovaly kořenovému certifikátu proxy, podle následujících kroků.

  1. Nastavte certifikát proxy serveru v úložišti důvěryhodných kořenových certifikátů vašeho hostitelského operačního systému. Další informace o instalaci kořenového certifikátu naleznete v tématu Instalace kořenové certifikační autority do úložiště certifikátů operačního systému.

  2. Nastavte zařízení IoT Edge tak, aby komunikuje přes proxy server odkazováním na certifikát v sadě důvěryhodných certifikátů. Další informace o tom, jak nastavit sadu důvěryhodných certifikátů, najdete v tématu Správa důvěryhodné kořenové certifikační autority (sada důvěryhodnosti).</a0>

Pokud chcete nastavit podporu proxy kontroly provozu pro kontejnery, které nespravuje IoT Edge, obraťte se na svého poskytovatele proxy serveru.

Plně kvalifikované názvy domén (FQDN) cílů, se kterými IoT Edge komunikuje

Pokud brána firewall vašeho proxy serveru vyžaduje přidání všech plně kvalifikovaných názvů domén do seznamu povolených pro připojení k internetu, projděte si seznam Povolení připojení ze zařízení IoT Edge a určete, které plně kvalifikované názvy domén chcete přidat.

Další kroky

Seznamte se s rolemi modulu runtime IoT Edge.

Řešení potíží s instalací a konfigurací v běžných problémech a řešeních pro Azure IoT Edge