Sdílet prostřednictvím


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 --versionpříkaz . Pokud chcete aktualizovat rozšíření, spusťte az extension update --name azure-iotpří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.