Jak automaticky migrovat centrum IoT pomocí Azure CLI
Pomocí Azure CLI můžete migrovat centrum IoT do nové oblasti, nové úrovně nebo nové konfigurace.
Postup v tomto článku je užitečný, pokud chcete:
- Upgradujte z úrovně Free na IoT Hub úrovně Basic nebo Standard.
- Přesun ioT Hubu do nové oblasti
- Exportujte informace o stavu služby IoT Hub, aby se měly zálohovat.
- Zvyšte počet oddílů pro centrum IoT.
- Nastavte centrum pro vývoj, nikoli pro produkční prostředí.
Porovnání automatických a ručních kroků migrace
Výsledek tohoto článku se podobá migraci centra Azure IoT pomocí šablon Azure Resource Manageru, ale s jiným procesem. Než začnete, rozhodněte se, který proces je pro váš scénář správný.
Proces Azure CLI (tento článek):
- Migruje registr zařízení, informace o směrování a koncovém bodu a další podrobnosti konfigurace, jako jsou nasazení IoT Edge nebo konfigurace automatické správy zařízení.
- Je jednodušší migrovat malý počet zařízení (například až 10 000).
- Nevyžaduje účet služby Azure Storage.
- Shromažďuje připojovací řetězec pro koncové body směrování a nahrávání souborů, které používají ověřování založené na klíči a zahrnují je do výstupu šablony ARM.
Ruční proces:
- Migruje registr zařízení a informace o směrování a koncovém bodu. V novém centru IoT musíte ručně vytvořit další podrobnosti o konfiguraci.
- Je rychlejší pro migraci velkého počtu zařízení (například více než 100 000).
- K přenosu registru zařízení používá účet služby Azure Storage.
- Scrubs připojovací řetězec s for routing and file upload endpoints that use key-based authentication from the ARM template output, and you need to add them back in.
Požadavky
Azure CLI
Funkce popsané v tomto článku vyžadují verzi 0.20.0 nebo novější rozšíření azure-iot . Pokud chcete zkontrolovat verzi rozšíření, spusťte
az --version
příkaz . Pokud chcete aktualizovat rozšíření, spusťteaz extension update --name azure-iot
příkaz .Pokud stále máte nainstalované starší rozšíření azure-cli-iot-ext , před přidáním rozšíření azure-iot toto rozšíření odeberte.
Stav ioT Hubu
Když mluvíme o migraci stavu ioT Hubu, odkazujeme na kombinaci tří aspektů:
Prostředky Azure Resource Manageru (ARM). Tento aspekt je všechno, co je možné definovat v šabloně prostředků, a je to stejné informace, které byste získali, pokud jste šablonu prostředku exportovali z centra IoT na webu Azure Portal. Mezi informace zachycené v rámci aspektu Azure Resource Manageru patří:
- Doba uchovávání integrovaného centra událostí
- Certifikáty
- Vlastnosti cloud-zařízení
- Zakázání SAS zařízení
- Zakázání místního ověřování
- Povolení oznámení o nahrávání souborů
- Koncový bod úložiště pro nahrání souboru
- Identity
- Identity přiřazené uživatelem
- Identity přiřazené systémem (povolené nebo zakázané)
- Sady pravidel sítě
- Směrování
- Vlastní koncové body
- Náhradní trasa
- Trasy
- Značky
Konfigurace. Tento aspekt je určený pro aspekty centra IoT, které nejsou reprezentované v šabloně ARM. Konkrétně se tento aspekt týká automatických konfigurací správy zařízení a nasazení IoT Edge.
Zařízení. Tento aspekt představuje informace v registru zařízení, mezi které patří:
- Identity zařízení a dvojčata
- Identity modulů a dvojčata
Všechny vlastnosti nebo konfigurace ioT Hubu, které tu nejsou uvedené, nemusí být exportovány nebo importovány správně.
Export stavu ioT Hubu
Pomocí příkazu az iot hub state export můžete exportovat stav ioT Hubu do souboru JSON.
Pokud chcete spustit kroky exportu i importu v jednom příkazu, projděte si část dále v tomto článku a migrujte centrum IoT.
Při exportu stavu ioT Hubu můžete zvolit, které aspekty se mají exportovat.
Parametr | Detaily |
---|---|
--aspects |
Aspekty stavu, které se mají exportovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud tento parametr vynecháte, exportují se všechny tři aspekty. |
--state-file -f |
Cesta k souboru, kde se zapisuje informace o stavu. |
--replace -r |
Pokud je tento parametr zahrnutý, příkaz pro export přepíše obsah souboru stavu. |
--hub-name -n nebo --login -l |
Název zdroje IoT Hubu (-n ) nebo připojovací řetězec pro zdroj IoT Hub (-l ). Pokud jsou k dispozici obě možnosti, má přednost připojovací řetězec. |
--resource-group -g |
Název skupiny prostředků pro centrum IoT původu. |
Následující příklad exportuje všechny aspekty stavu ioT Hubu do souboru s názvem myHub-state:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json
Následující příklad exportuje pouze zařízení a aspekty Azure Resource Manageru stavu centra IoT a přepíše obsah existujícího souboru:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json --aspects arm devices --replace
Export koncových bodů
Pokud se rozhodnete exportovat aspekt Azure Resource Manageru centra IoT, příkaz pro export načte připojovací řetězec pro všechny koncové body, které mají ověřování založené na klíči, a zahrne je do výstupní šablony ARM.
Příkaz exportu také zkontroluje všechny koncové body a ověří, že prostředek, ke kterému se připojuje, stále existuje. Pokud ne, pak se tento koncový bod a všechny trasy používající tento koncový bod neexportují.
Import stavu ioT Hubu
Pomocí příkazu az iot hub state import můžete importovat informace o stavu z exportovaného souboru do nového nebo existujícího centra IoT.
Pokud chcete spustit kroky exportu i importu v jednom příkazu, projděte si část dále v tomto článku a migrujte centrum IoT.
Parametr | Detaily |
---|---|
--aspects |
Aspekty stavu, které se mají importovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud tento parametr vynecháte, importují se všechny tři aspekty. |
--state-file -f |
Cesta k exportovaného souboru stavu. |
--replace -r |
Pokud je tento parametr zahrnutý, příkaz importu odstraní aktuální stav cílového centra. |
--hub-name -n nebo --login -l |
Název cílového centra IoT (-n ) nebo připojovací řetězec pro cílové centrum IoT (-l ). Pokud jsou k dispozici obě možnosti, má přednost připojovací řetězec. |
--resource-group -g |
Název skupiny prostředků pro cílové centrum IoT. |
Následující příklad naimportuje všechny aspekty do nového centra IoT, které se vytvoří, pokud ještě neexistuje:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json
Následující příklad naimportuje do nového centra IoT pouze aspekty zařízení a konfigurace, které už musí existovat, a přepíše všechna existující zařízení a konfigurace:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json --aspects devices configurations --replace
Vytvoření nového centra IoT s importem stavu
Příkaz můžete použít az iot hub state import
k vytvoření nového centra IoT nebo k zápisu do existujícího ioT Hubu.
Pokud chcete vytvořit novou službu IoT Hub, musíte do příkazu import zahrnout arm
aspekt. Pokud arm
není součástí příkazu a cílové centrum neexistuje, příkaz importu selže.
Pokud cílové centrum neexistuje, --resource-group
je parametr také nutný pro příkaz importu.
Aktualizace existujícího centra IoT pomocí importu stavu
Pokud cílové centrum IoT již existuje, arm
není tento aspekt pro az iot hub state import
příkaz nutný. Pokud tento aspekt zahrnete arm
, všechny vlastnosti prostředku se přepíšou s výjimkou následujících vlastností, které se po vytvoření centra nedají změnit:
- Umístění
- Skladová jednotka (SKU)
- Integrovaný počet oddílů služby Event Hubs
- Umístění dat
- Funkce
--resource-group
Pokud je zadaný v příkazu importu a liší se od aktuální skupiny prostředků služby IoT Hub, příkaz selže, protože se pokusí vytvořit nové centrum se stejným názvem jako ten, který už existuje.
Pokud do příkazu importu --replace
zahrnete příznak, před nahráním stavu centra se z cílového centra odeberou následující aspekty centra IoT:
- ARM: Všechny nahrané certifikáty v cílovém centru se odstraní. Pokud je certifikát k dispozici, potřebuje aktualizaci značky etag.
- Zařízení: Odstraní se všechna zařízení a moduly, hraniční zařízení a ne edge.
- Konfigurace: Odstraní se všechny konfigurace správy zařízení a nasazení IoT Edge.
Migrace ioT Hubu
Pomocí příkazu az iot hub state migrate můžete migrovat stav jednoho centra IoT do nového nebo existujícího ioT Hubu.
Tento příkaz zabalí kroky exportu a importu do jednoho příkazu, ale neobsahuje žádné výstupní soubory. Všechny pokyny a omezení popsané v exportu stavu služby IoT Hub a import stavu oddílů centra IoT platí i pro state migrate
příkaz.
Pokud migrujete registr zařízení s mnoha zařízeními (například s několika stovkami nebo několika tisíci), může být jednodušší a rychlejší spouštět příkazy pro export a import samostatně místo spuštění příkazu migrace.
Parametr | Detaily |
---|---|
--aspects |
Aspekty stavu, které se mají migrovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud tento parametr vynecháte, všechny tři aspekty se migrují. |
--replace -r |
Pokud je tento parametr zahrnutý, příkaz migrace odstraní aktuální stav cílového centra. |
--destination-hub --dh nebo --destination-hub-login --dl |
Název cílového centra IoT (--dh ) nebo připojovací řetězec pro cílové centrum IoT (--dl ). Pokud jsou k dispozici obě možnosti, má přednost připojovací řetězec. |
--destination-resource-group --dg |
Název skupiny prostředků pro cílové centrum IoT. Cílová skupina prostředků se vyžaduje, pokud cílové centrum neexistuje. |
--origin-hub --oh nebo --origin-hub-login --ol |
Název zdroje IoT Hubu (--oh ) nebo připojovací řetězec pro zdroj IoT Hub (--ol ). Pokud jsou k dispozici obě možnosti, má přednost připojovací řetězec. Pomocí připojovací řetězec se vyhněte přihlášení k relaci Azure CLI. |
--origin-resource-group --og |
Název skupiny prostředků pro centrum IoT původu. |
Následující příklad migruje všechny aspekty centra původu do cílového centra, které se vytvoří, pokud neexistuje:
az iot hub state migrate --origin-hub myHub --origin-resource-group myGroup --destination-hub myNewHub --destination-resource-group myNewGroup
Řešení potíží s migrací
Pokud nemůžete exportovat nebo importovat zařízení nebo konfigurace, zkontrolujte, jestli máte k těmto vlastnostem přístup. Jedním ze způsobů, jak ověřit přístup, je spuštěním az iot hub device-identity list
příkazů nebo az iot hub configuration list
příkazů.
Pokud příkaz az iot hub state migrate
selže, zkuste příkazy exportu a importu spustit samostatně. Dva příkazy mají za následek stejné funkce jako samotný příkaz migrace, ale spuštěním těchto příkazů samostatně můžete zkontrolovat stavové soubory vytvořené z příkazu exportu.
Další kroky
Další informace o provádění hromadných operací s registrem identit v centru IoT najdete v tématu Import a export identit zařízení ioT Hubu.