Postup automatické migrace centra IoT pomocí Azure CLI

Pomocí Azure CLI můžete migrovat centrum IoT do nové oblasti, nové úrovně nebo nové konfigurace.

Kroky v tomto článku jsou užitečné, pokud chcete:

  • Upgradujte z úrovně Free na službu IoT Hub úrovně Basic nebo Standard.
  • Přesun centra IoT do nové oblasti
  • Vyexportujte informace o stavu služby IoT Hub jako zálohu.
  • Zvyšte počet oddílů pro centrum IoT.
  • Nastavte centrum pro vývojové prostředí místo produkčního prostředí.

Porovnání kroků automatické a ruční migrace

Výsledek tohoto článku se podobá migraci centra Azure IoT pomocí šablon Azure Resource Manager, ale s jiným procesem. Než začnete, rozhodněte se, který proces je pro váš scénář nejvhodnější.

  • Proces Azure CLI (tento článek):

    • Migruje registr zařízení, informace o směrování a koncovém bodu a další podrobnosti o konfiguraci, jako jsou nasazení IoT Edge nebo konfigurace automatické správy zařízení.
    • Je jednodušší pro migraci malého počtu zařízení (například až 10 000).
    • Nevyžaduje účet Azure Storage.
    • Shromažďuje připojovací řetězce pro koncové body směrování a nahrávání souborů a zahrne 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ě znovu 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 Azure Storage.
    • Odstraní připojovací řetězce pro koncové body směrování a nahrávání souborů z výstupu šablony ARM a musíte je znovu ručně přidat.

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

    Pokud máte stále nainstalované starší rozšíření azure-cli-iot-ext , před přidáním rozšíření azure-iot toto rozšíření odeberte.

Stav služby IoT Hub

Když mluvíme o migraci stavu služby IoT Hub, máme na mysli kombinaci tří aspektů:

  • Prostředky Azure Resource Manager (ARM). Tento aspekt je vše, co se dá definovat v šabloně prostředku, a je to stejné informace, které byste získali, kdybyste šablonu prostředku vyexportovali ze služby IoT Hub v Azure Portal. Mezi informace zachycené v rámci aspektu Azure Resource Manager patří:

    • Doba uchovávání integrovaného centra událostí
    • Certifikáty
    • Vlastnosti cloud-zařízení
    • Zakázání SAS zařízení
    • Zakázat místní ověřování
    • Povolení oznámení o nahrávání souborů
    • Koncový bod úložiště pro nahrávání souborů
    • 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
      • Záložní 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á konfigurací automatické správy zařízení a nasazení IoT Edge.

  • Zařízení. Tento aspekt představuje informace v registru zařízení, mezi které patří:

    • Identity a dvojčata zařízení
    • Identity a dvojčata modulů

Žádné IoT Hub vlastnosti nebo konfigurace, které tu nejsou uvedené, nemusí být exportovány nebo importovány správně.

Export stavu služby IoT Hub

Pomocí příkazu az iot hub state export vyexportujte stav centra IoT do souboru JSON.

Pokud chcete spustit kroky exportu i importu v jednom příkazu, projděte si část dále v tomto článku věnovaném migraci centra IoT.

Při exportu stavu služby IoT Hub můžete zvolit, které aspekty se mají exportovat.

Parametr Podrobnosti
--aspects Aspekty stavu, které se mají exportovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud je tento parametr vynecháný, exportují se všechny tři aspekty.
--state-file -f Cesta k souboru, do kterého jsou zapisovány informace o stavu.
--replace -r Pokud je tento parametr zahrnutý, příkaz exportu přepíše obsah souboru stavu.
--hub-name -n
Nebo
--login -l
Název původního centra IoT (-n) nebo připojovacího řetězce pro počáteční 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 původní centrum IoT.

Následující příklad exportuje všechny aspekty stavu služby IoT Hub do souboru 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 Azure Resource Manager aspekty stavu služby IoT Hub 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 služby Azure Resource Manager služby IoT Hub, příkaz exportu načte připojovací řetězce pro všechny koncové body, které mají ověřování na základě klíčů, 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, neexportují se tento koncový bod ani žádné trasy, které tento koncový bod používají.

Import stavu centra IoT

Pomocí příkazu az iot hub state import naimportujte 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 věnovaném migraci centra IoT.

Parametr Podrobnosti
--aspects Aspekty stavu, které se mají importovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud je tento parametr vynecháný, importují se všechny tři aspekty.
--state-file -f Cesta k souboru exportovaného 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ího řetězce 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 importuje 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

Pomocí příkazu můžete az iot hub state import vytvořit nové centrum IoT nebo zapisovat do existujícího centra IoT.

Pokud chcete vytvořit nový IoT Hub, musíte do příkazu import zahrnout arm aspekt. Pokud arm příkaz neobsahuje a cílové centrum neexistuje, příkaz importu se nezdaří.

Pokud cílové centrum neexistuje, pak --resource-group se parametr vyžaduje také pro příkaz importu.

Aktualizace existujícího centra IoT pomocí importu stavu

Pokud cílové centrum IoT již existuje, arm pak se tento aspekt pro az iot hub state import příkaz nevyžaduje. Pokud zahrnete arm aspekt, přepíšou se všechny vlastnosti prostředku s výjimkou následujících vlastností, které po vytvoření centra nejde změnit:

  • Umístění
  • Skladová jednotka (SKU)
  • Počet předdefinovaných oddílů služby Event Hubs
  • Rezidence dat
  • Funkce

--resource-group Pokud je parametr 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 centrum, které už existuje.

Pokud do příkazu import zahrnete --replace příznak, odeberou se z cílového centra před nahráním stavu centra následující aspekty služby IoT Hub:

  • ARM: Všechny nahrané certifikáty v cílovém centru se odstraní. Pokud certifikát existuje, je potřeba aktualizovat etag.
  • Zařízení: Odstraní se všechna zařízení a moduly, hraniční i ne hraniční.
  • Konfigurace: Odstraní se všechny konfigurace ADM a IoT Edge nasazení.

Migrace služby IoT Hub

Pomocí příkazu az iot hub state migrate migrujte stav jednoho centra IoT do nového nebo existujícího centra IoT.

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 částech Export stavu služby IoT Hub a Import stavu služby IoT Hub platí také 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ší spustit příkazy pro export a import samostatně, než spustit příkaz migrate.

Parametr Podrobnosti
--aspects Aspekty stavu, které se mají migrovat. Zadejte jednu nebo více přijatých hodnot: arm, konfigurace nebo zařízení. Pokud je tento parametr vynecháný, migrují se všechny tři aspekty.
--replace -r Pokud je tento parametr zahrnutý, příkaz migrate 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ího řetězce 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ů cílového centra IoT. Cílová skupina prostředků se vyžaduje, pokud cílové centrum neexistuje.
--origin-hub --oh
Nebo
--origin-hub-login --ol
Název původního centra IoT (--oh) nebo připojovacího řetězce pro počáteční centrum IoT (--ol). Pokud jsou k dispozici obě možnosti, má přednost připojovací řetězec. Připojovací řetězec použijte, abyste se nemuseli přihlašovat k relaci Azure CLI.
--origin-resource-group --og Název skupiny prostředků pro původní centrum IoT.

Následující příklad migruje všechny aspekty původního centra 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, že k těmto vlastnostem máte 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 .

Pokud příkaz az iot hub state migrate selže, zkuste příkazy pro export a import spustit samostatně. Výsledkem těchto dvou příkazů jsou stejné funkce jako samotný příkaz migrace, ale jejich samostatným spuštěním můžete zkontrolovat stavové soubory vytvořené příkazem exportu.

Další kroky

Další informace o provádění hromadných operací s registrem identit ve službě IoT Hub najdete v tématu Import a export IoT Hub identit zařízení.