Vlastnosti dvojčat IoT Edge agenta a IoT Edge centra

Platí na:IoT Edge 1.6 zaškrtávací značka IoT Edge 1.6

Důležité

IoT Edge 1.6 LTS je podporovaná verze. Podpora IoT Edge 1.5 LTS končí 10. listopadu 2026; IoT Edge 1.4 LTS dosáhl konce životnosti 12. listopadu 2024. Pokud používáte starší verzi, přečtěte si téma Update IoT Edge.

Agent IoT Edge a centrum IoT Edge jsou dva moduly, které tvoří modul runtime IoT Edge. Další informace o zodpovědnostech jednotlivých modulů modulu runtime najdete v tématu porozumíte Azure IoT Edge runtime a její architektuře.

Tento článek uvádí požadované vlastnosti a hlášené vlastnosti dvojníků modulu runtime. Další informace o tom, jak nasadit moduly na zařízeních IoT Edge, najdete v tématu učnaučte se nasazovat moduly a navazovat trasy v IoT Edge.

Dvojče modulu zahrnuje:

  • Požadované vlastnosti. Back-end řešení nastaví požadované vlastnosti a modul je přečte. Modul také obdrží oznámení o změnách požadovaných vlastností. K synchronizaci konfigurace nebo podmínek modulu použijte požadované vlastnosti spolu s ohlášenými vlastnostmi.

  • Ohlášené vlastnosti Modul nastaví ohlášené vlastnosti a back-end řešení je přečte a dotazuje se na ně. K synchronizaci konfigurace nebo podmínek modulu použijte ohlášené vlastnosti spolu s požadovanými vlastnostmi.

Požadované vlastnosti agenta EdgeAgent

Dvojče modulu pro agenta IoT Edge se nazývá $edgeAgent. Koordinuje komunikaci mezi agentem IoT Edge spuštěným na zařízení a IoT Hub. Nastavte požadované vlastnosti při použití manifestu nasazení na konkrétní zařízení jako součást nasazení s jedním zařízením nebo ve velkém měřítku.

Vlastnost Popis Povinné
imagePullPolicy Určuje, kdy se má stáhnout obrázek: OnCreate nebo Never. Pokud už je image na zařízení, použijte funkci Nikdy . Ano
restartPolicy Kdy modul restartujte. Možné hodnoty jsou: nikdy: nerestartovat modul, pokud neběží; při selhání: restartovat modul, pokud se ukončí s nenulovým ukončovacím kódem; při nefunkčnosti: restartovat modul, pokud je nefunkční (viz poznámka); vždy: vždy restartovat modul, pokud není spuštěný. Poznámka: Zásada on-failure restartuje moduly, které končí s nenulovým ukončovacím kódem. Zásady on-unhealthy jsou přijímány schématem, ale modul runtime v současné době neodvozuje stav, který není v pořádku, z kontrol stavu Dockeru, takže nemá žádný praktický účinek. Podrobnosti najdete v tématu IoT Edge omezení a restrikce. Ano
runtime.type Musí to být docker. Ano
runtime.settings.minDockerVersion Určuje minimální verzi Dockeru vyžadovanou tímto manifestem nasazení. Ano
runtime.settings.loggingOptions Určuje řetězecifikovaný JSON s možnostmi protokolování pro kontejner agenta IoT Edge. Přečtěte si další informace o možnostech protokolování Dockeru. Ne
runtime.settings.registryCredentials.{registryId}.username Určuje uživatelské jméno registru kontejneru. Pro Azure Container Registry je uživatelské jméno obvykle názvem registru. Přihlašovací údaje registru jsou vyžadovány pro obrázky modulů privátních. Ne
runtime.settings.registryCredentials.{registryId}.password Heslo pro registr kontejneru. Ne
runtime.settings.registryCredentials.{registryId}.address Adresa registru kontejneru. Pro Azure Container Registry je adresa obvykle {registry name}.azurecr.io. Ne
schemaVersion Určuje 1.0 nebo 1.1. Doporučuje se verze 1.1, která byla zavedena s IoT Edge verze 1.0.10. Ano
status Požadovaný stav modulu: Spuštěno nebo Zastaveno Povinné
systemModules.edgeAgent.type Musí to být docker. Ano
systemModules.edgeAgent.startupOrder Určuje celé číslo pozice modulu v pořadí spuštění. Hodnota 0 je první a maximální celé číslo (4294967295) je poslední. Pokud nezadáte hodnotu, výchozí hodnota je maximální celé číslo. Ne
systemModules.edgeAgent.settings.image Určuje identifikátor URI obrazu agenta IoT Edge. Agent IoT Edge nemůže aktualizovat sám sebe. Ano
systemModules.edgeAgent.settings.createOptions Určuje řetězecifikovaný JSON s možnostmi pro vytvoření kontejneru agenta IoT Edge. Přečtěte si další informace o možnostech vytváření Dockeru. Ne
systemModules.edgeAgent.configuration.id ID nasazení, které tento modul nasadilo. IoT Hub tuto vlastnost nastaví, když při nasazení použijete manifest. Není součástí manifestu nasazení.
systemModules.edgeHub.type Musí to být docker. Ano
systemModules.edgeHub.status Musí být spuštěný. Ano
systemModules.edgeHub.restartPolicy Musí být vždy. Ano
systemModules.edgeHub.startupOrder Celočíselná hodnota určující, na jaké pozici je modul v pořadí spuštění. Hodnota 0 je první a maximální celé číslo (4294967295) je poslední. Pokud nezadáte hodnotu, výchozí hodnota je maximální celé číslo. Ne
systemModules.edgeHub.settings.image Identifikátor URI obrazu centra IoT Edge. Ano
systemModules.edgeHub.settings.createOptions Řetězecifikovaný JSON obsahující možnosti pro vytvoření kontejneru centra IoT Edge. Možnosti vytvoření Dockeru Ne
systemModules.edgeHub.configuration.id ID nasazení, které tento modul nasadilo. IoT Hub tuto vlastnost nastaví, když při nasazení použijete manifest. Není součástí manifestu nasazení.
modules.{moduleId}.version Uživatelem definovaný řetězec představující verzi tohoto modulu. Ano
modules.{moduleId}.type Musí to být docker. Ano
modules.{moduleId}.status běžící | zastaveno Ano
modules.{moduleId}.restartPolicy Nikdy | při chybě | při problémech | vždy Ano
modules.{moduleId}.startupOrder Celočíselná hodnota pro umístění, které má modul v pořadí spuštění. Hodnota 0 je první a maximální celé číslo (4294967295) je poslední. Pokud nezadáte hodnotu, výchozí hodnota je maximální celé číslo. Ne
modules.{moduleId}.imagePullPolicy on-create | Nikdy Ne
modules.{moduleId}.env Seznam proměnných prostředí, které se mají předat modulu. Přijímá formát "<name>": {"value": "<value>"}. Ne
modules.{moduleId}.settings.image URI obrázku modulu. Ano
modules.{moduleId}.settings.createOptions Stringifikovaný JSON obsahující možnosti pro vytvoření kontejneru modulu. Možnosti vytvoření Dockeru Ne
modules.{moduleId}.configuration.id ID nasazení, které tento modul nasadilo. IoT Hub tuto vlastnost nastaví, když při nasazení použijete manifest. Není součástí manifestu nasazení.
version Aktuální iterace s verzí, potvrzením a sestavením. Ne

Vlastnosti ohlášené agentem EdgeAgent

Zprávy o vlastnostech agenta IoT Edge zahrnují tři hlavní informace:

  • Stav aplikace naposledy zobrazených požadovaných vlastností
  • Stav modulů aktuálně spuštěných v zařízení podle hlášení agenta IoT Edge a
  • Kopie požadovaných vlastností, které jsou aktuálně aktivní na zařízení.

Kopie aktuálních požadovaných vlastností vám pomůže určit, jestli zařízení použilo nejnovější nasazení nebo stále používá předchozí manifest nasazení.

Poznámka:

Můžete dotazovat hlášené vlastnosti agenta IoT Edge pomocí dotazovacího jazyka IoT Hub a prozkoumat tak stav nasazení ve velkém měřítku. Informace o tom, jak používat vlastnosti agenta IoT Edge ke zjištění stavu, najdete v tématu Pochopit nasazení IoT Edge pro jednotlivá zařízení nebo ve velkém měřítku.

Následující tabulka neobsahuje informace zkopírované z požadovaných vlastností.

Vlastnost Popis
lastDesiredStatus.code Stavový kód pro poslední požadované vlastnosti, které vidí agent IoT Edge Povolené hodnoty: 200 Úspěch, 400 Neplatná konfigurace, 412 Neplatná verze schématu, 417 Požadované vlastnosti jsou prázdné, 500 Selhání.
lastDesiredStatus.description Textový popis stavu
lastDesiredVersion Toto celé číslo odkazuje na poslední verzi požadovaných vlastností zpracovaných agentem IoT Edge.
runtime.platform.OS Nahlásí operační systém spuštěný na zařízení.
runtime.platform.architecture Zaznamenává architekturu procesoru na zařízení.
schemaVersion Verze schématu ohlášených vlastností
systemModules.edgeAgent.runtimeStatus Hlášený stav agenta IoT Edge: { running | unhealthy }.
systemModules.edgeAgent.statusDescription Textový popis hlášeného stavu agenta IoT Edge.
systemModules.edgeAgent.exitCode Ukončovací kód, který kontejner agenta IoT Edge hlásí při ukončení kontejneru.
systemModules.edgeAgent.lastStartTimeUtc Čas posledního spuštění agenta IoT Edge
systemModules.edgeAgent.lastExitTimeUtc Čas posledního ukončení agenta IoT Edge
systemModules.edgeHub.runtimeStatus Stav centra IoT Edge: { běží | zastaveno | selhalo | návrat | nezdravé }.
systemModules.edgeHub.statusDescription Textový popis stavu centra IoT Edge, pokud není v pořádku.
systemModules.edgeHub.exitCode Kód ukončení, který je hlášen kontejnerem uzlu IoT Edge, pokud se kontejner ukončí.
systemModules.edgeHub.lastStartTimeUtc Čas posledního spuštění centra IoT Edge
systemModules.edgeHub.lastExitTimeUtc Čas, kdy bylo centrum IoT Edge naposledy ukončeno.
systemModules.edgeHub.lastRestartTimeUtc Čas posledního restartování centra IoT Edge
systemModules.edgeHub.restartCount Počet restartů modulu v rámci politiky restartu.
modules.{moduleId}.runtimeStatus Stav modulu: { spuštěno | zastaveno | selháno | záložní stav | nefunkční }.
modules.{moduleId}.statusDescription Textový popis stavu modulu, pokud není v pořádku.
modules.{moduleId}.exitCode Ukončovací kód hlášený kontejnerem modulu, pokud kontejner ukončí svou činnost.
modules.{moduleId}.lastStartTimeUtc Čas posledního spuštění modulu
modules.{moduleId}.lastExitTimeUtc Čas posledního ukončení modulu
modules.{moduleId}.lastRestartTimeUtc Čas posledního restartování modulu
modules.{moduleId}.restartCount Počet restartů modulu v rámci politiky restartu.
version Verze obrazu Například: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Požadované vlastnosti EdgeHubu

Dvojče modulu pro centrum IoT Edge se nazývá $edgeHub. Koordinuje komunikaci mezi centrem IoT Edge spuštěným na zařízení a IoT Hub. Nastavte požadované vlastnosti při použití manifestu nasazení na konkrétní zařízení jako součást nasazení s jedním zařízením nebo ve velkém měřítku.

Vlastnost Popis Požadováno v manifestu nasazení
schemaVersion Buď 1.0, nebo 1.1. Verze 1.1 byla zavedena s IoT Edge verze 1.0.10 a doporučuje se. Ano
routes.{routeName} Řetězec představující trasu centra IoT Edge. Další informace naleznete v tématu Deklarování tras. Prvek routes může být přítomný, ale prázdný.
storeAndForwardConfiguration.timeToLiveSecs Doba v sekundách, po kterou IoT Edge hub uchovává zprávy, pokud je odpojen od koncových bodů směrování, ať už se jedná o IoT Hub nebo místní modul. Tento čas přetrvává po všech vypnutích nebo restartováních. Další informace najdete v tématu Možnosti offline. Ano

Proměnné prostředí EdgeHub

Některé chování centra IoT Edge můžete ladit nastavením proměnných prostředí v $edgeHub modulu v manifestu nasazení. Následující proměnné určují, jak centrum IoT Edge aktualizuje mezipaměť oboru zařízení, kterou používá k místnímu ověření podřízených zařízení a modulů.

Proměnná prostředí Popis
DeviceScopeCacheRefreshRateSecs Jak často (v sekundách) IoT Edge hub aktualizuje mezipaměť zařízení a modulů v jeho rozsahu jejich výčtem z IoT Hubu. Výchozí hodnota je 3600 (jedna hodina). V centru s mnoha IoT Edge zařízeními můžou kombinované operace aktualizace rozsahu ze všech zařízení významně přispět k využití operací identit centra. Zvýšení této hodnoty snižuje zatížení úměrně. Další informace viz Byla překročena kvóta operací identity v IoT Hubu u rozsáhlé flotily zařízení.
DeviceScopeCacheRefreshDelaySecs Minimální doba v sekundách, po kterou centrum IoT Edge čeká, než znovu aktualizuje jednu identitu na vyžádání. Výchozí hodnota je 120. Toto nastavení omezuje, jak často se stejná identita při připojování klientů aktualizuje v rychlém sledu.

Ohlášené vlastnosti EdgeHubu

Vlastnost Popis
lastDesiredVersion Toto celé číslo odkazuje na poslední verzi požadovaných vlastností zpracovaných centrem IoT Edge.
lastDesiredStatus.code Stavový kód odkazující na poslední požadované vlastnosti, které vidíte v centru IoT Edge. Povolené hodnoty: 200 Úspěch, 400 Neplatná konfigurace, 500 Selhání.
lastDesiredStatus.description Textový popis stavu
clients Všichni klienti připojení k EdgeHubu se stavem a časem posledního připojení. Příklad: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }. Podrobnosti o tom, která připojení se zobrazují v této vlastnosti, najdete v článku Která připojení se zobrazují v clients.
clients.{device or moduleId}.status Stav připojení tohoto zařízení nebo modulu Možné hodnoty: připojeno nebo odpojeno. V odpojeném stavu můžou být pouze identity modulů. Podřízená zařízení, která se připojují k IoT Edge rozbočovači, se zobrazí pouze, když jsou připojena.
clients.{device or moduleId}.lastConnectTime Čas posledního připojení zařízení nebo modulu
clients.{device or moduleId}.lastDisconnectTime Čas posledního odpojení zařízení nebo modulu
schemaVersion Verze schématu ohlášených vlastností
version Verze obrazu Například: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Která připojení se zobrazují v clients

Ohlášená clients vlastnost obsahuje seznam všech samostatných logických připojení, které místní edgeHub obsluhuje, s výjimkou vlastní $edgeHub identity. Konkrétně:

  • Moduly na stejném hraničním zařízení se zobrazují jako <deviceId>/<moduleName>. To zahrnuje $edgeAgent, protože místní agent edgeAgent se připojuje přes místní edgeHub.
  • Následná podřízená zařízení IoT Edge se zobrazí jako <childDeviceId>/$edgeHub a <childDeviceId>/$edgeAgent. Není zde žádná samostatná položka <childDeviceId>. Připojení dítěte $edgeHub je "vlastní připojení zařízení" odkazované v počtu připojených klientů v hierarchii brány.
  • Podřazená koncová zařízení (zařízení, která nejsou IoT Edge) se zobrazují jako <deviceId> bez přípony modulu.
  • Vlastní identita místního edgeHubu (<deviceId>/$edgeHub) je záměrně vynechána, aby se zabránilo odkazu na sebe sama.

Když se modul odpojí, jeho položka zůstane v clients se stavem Disconnected. Když se podřízené zařízení odpojí, jeho vstup se odebere z clients. Počet viditelných položek se rovná počtu plánovanému pro MaxConnectedClients. Neexistuje žádné skryté další připojení.

Další kroky

Informace o tom, jak tyto vlastnosti použít k sestavení manifestů nasazení, najdete v tématu Podstatu, jak lze používat, konfigurovat a opakovaně používat moduly IoT Edge.