Ruční migrace služby Azure IoT Hub pomocí šablony Azure Resource Manager

Pomocí Azure Portal, šablon Azure Resource Manager a sad SDK služby Azure IoT Hub můžete migrovat centrum IoT do nové oblasti, nové úrovně nebo nové konfigurace.

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

K migraci centra potřebujete předplatné s přístupem pro správu k původnímu centru. Nové centrum můžete umístit do nové skupiny prostředků a oblasti, do stejného předplatného jako původní centrum nebo dokonce do nového předplatného. Nemůžete použít stejný název, protože název centra musí být globálně jedinečný.

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

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

  • Ruční proces (tento článek):

    • 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 Služby 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.
  • Proces Azure CLI:

    • 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.

Aspekty ke zvážení

Před migrací centra IoT je potřeba zvážit několik věcí.

  • Ujistěte se, že všechny funkce dostupné v původním umístění jsou dostupné také v novém umístění. Některé služby jsou ve verzi Preview a ne všechny funkce jsou dostupné všude.

  • Před vytvořením a ověřením migrované verze neodstraňujte původní prostředky. Jakmile centrum odeberete, navždy zmizí a neexistuje způsob, jak ho obnovit, abyste zkontrolovali nastavení nebo data, abyste měli jistotu, že se centrum správně replikuje.

  • Data pro původní centrum IoT se nemigrují. Tato data zahrnují zprávy zařízení, příkazy typu cloud-zařízení (C2D) a informace související s úlohami, jako jsou plány a historie. Metriky a výsledky protokolování se také nemigrují.

  • Pro migraci je potřeba naplánovat výpadek. Klonování zařízení do nového centra nějakou dobu trvá. Pokud použijete metodu Import/Export, srovnávací testování ukázalo, že přesun 500 000 zařízení může trvat přibližně dvě hodiny a přesun milionu zařízení čtyři hodiny.

  • Zařízení můžete zkopírovat do nového centra, aniž byste je museli vypínat nebo měnit.

    • Pokud byla zařízení původně zřízena pomocí DPS, aktualizujte jejich registrace tak, aby odkazovaly na nové centrum IoT. Pak zařízení znovu zpřístupni, aby se aktualizovaly informace o připojení uložené v jednotlivých zařízeních.

    • V opačném případě budete muset k přesunutí zařízení použít metodu importu/exportu a pak je potřeba zařízení upravit tak, aby používala nové centrum. Můžete například nastavit, aby zařízení využívalo název hostitele IoT Hub z požadovaných vlastností dvojčete. Zařízení převezme IoT Hub název hostitele, odpojí zařízení od starého centra a znovu ho připojí k novému.

  • Musíte aktualizovat všechny certifikáty, abyste je mohli používat s novými prostředky. Také pravděpodobně máte centrum definované někde v tabulce DNS a potřebujete tyto informace DNS aktualizovat.

Metodologie

Toto je obecná metoda, která se doporučuje pro migraci centra IoT.

  1. Exportujte centrum a jeho nastavení do šablony Resource Manager.

  2. Proveďte potřebné změny šablony, například aktualizujte všechny výskyty názvu a umístění migrovaného centra. U všech prostředků v šabloně, které se používají pro koncové body směrování zpráv, aktualizujte klíč v šabloně daného prostředku.

  3. Importujte šablonu do nové skupiny prostředků v novém umístění. Tento krok vytvoří nové centrum IoT.

  4. Podle potřeby ladit.

  5. Přidejte vše, co se do šablony neexportovalo.

    Do šablony se například neexportují skupiny uživatelů. Skupiny uživatelů musíte do šablony přidat ručně nebo použít Azure Portal po vytvoření centra.

  6. Zkopírujte zařízení z původního centra do nového rozbočovače. Tento proces je popsaný v části Správa zařízení zaregistrovaných ve službě IoT Hub.

Zpracování směrování zpráv

Pokud vaše centrum používá směrování zpráv, export šablony pro centrum zahrnuje konfiguraci směrování, ale nezahrnuje samotné prostředky. Pokud migrujete centrum IoT do nové oblasti, musíte se rozhodnout, jestli do nového umístění přesunete také prostředky směrování, nebo je necháte na místě a budete je dál používat "tak, jak jsou". Směrování zpráv do prostředků koncového bodu v jiné oblasti může mít malý výkon.

Pokud centrum používá směrování zpráv, máte dvě možnosti.

  • Přesuňte prostředky používané pro koncové body směrování do nového umístění.

    1. Nové prostředky vytvořte sami buď ručně v Azure Portal, nebo pomocí šablon Resource Manager.

    2. Při vytváření v novém umístění přejmenujte všechny prostředky, protože vyžadují globálně jedinečné názvy.

    3. Před vytvořením nového centra aktualizujte názvy prostředků a klíče prostředků v šabloně nového centra. Prostředky by měly být k dispozici při vytvoření nového centra.

  • Nepřesouvejte prostředky používané pro koncové body směrování. Použijte je "na místě".

    1. V kroku, ve kterém šablonu upravujete, musíte před vytvořením nového centra načíst klíče pro každý prostředek směrování a vložit je do šablony.

    2. Centrum stále odkazuje na původní prostředky směrování a směruje na ně zprávy podle konfigurace. Budete mít malý výkon, protože centrum a prostředky koncového bodu směrování nejsou ve stejném umístění.

Příprava na migraci centra do jiné oblasti

Tato část obsahuje konkrétní pokyny pro migraci centra.

Export původního centra do šablony prostředku

  1. Přihlaste se k webu Azure Portal.

  2. Přejděte do centra IoT, které chcete přesunout.

  3. V seznamu vlastností a nastavení centra vyberte Exportovat šablonu .

    Snímek obrazovky znázorňující příkaz pro export šablony pro centrum IoT

  4. Vyberte Stáhnout a stáhněte si šablonu. Uložte soubor někam, kde ho znovu najdete.

    Snímek obrazovky znázorňující příkaz pro stažení šablony pro centrum IoT

Zobrazení šablony

Přejděte ke stažené šabloně, která je obsažená v souboru ZIP. Extrahujte soubor zip a vyhledejte soubor s názvem template.json.

Následující příklad je určený pro obecné centrum bez konfigurace směrování. Je to centrum úrovně S1 (s 1 jednotkou) s názvem ContosoHub v oblasti westus:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "IotHubs_ContosoHub_connectionString": {
            "type": "SecureString"
        },
        "IotHubs_ContosoHub_containerName": {
            "type": "SecureString"
        },
        "IotHubs_ContosoHub_name": {
            "defaultValue": "ContosoHub",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Devices/IotHubs",
            "apiVersion": "2021-07-01",
            "name": "[parameters('IotHubs_ContosoHub_name')]",
            "location": "westus",
            "sku": {
                "name": "S1",
                "tier": "Standard",
                "capacity": 1
            },
            "identity": {
                "type": "None"
            },
            "properties": {
                "ipFilterRules": [],
                "eventHubEndpoints": {
                    "events": {
                        "retentionTimeInDays": 1,
                        "partitionCount": 4
                    }
                },
                "routing": {
                    "endpoints": {
                        "serviceBusQueues": [],
                        "serviceBusTopics": [],
                        "eventHubs": [],
                        "storageContainers": []
                    },
                    "routes": [],
                    "fallbackRoute": {
                        "name": "$fallback",
                        "source": "DeviceMessages",
                        "condition": "true",
                        "endpointNames": [
                            "events"
                        ],
                        "isEnabled": true
                    }
                },
                "storageEndpoints": {
                    "$default": {
                        "sasTtlAsIso8601": "PT1H",
                        "connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
                        "containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
                    }
                },
                "messagingEndpoints": {
                    "fileNotifications": {
                        "lockDurationAsIso8601": "PT1M",
                        "ttlAsIso8601": "PT1H",
                        "maxDeliveryCount": 10
                    }
                },
                "enableFileUploadNotifications": false,
                "cloudToDevice": {
                    "maxDeliveryCount": 10,
                    "defaultTtlAsIso8601": "PT1H",
                    "feedback": {
                        "lockDurationAsIso8601": "PT1M",
                        "ttlAsIso8601": "PT1H",
                        "maxDeliveryCount": 10
                    }
                },
                "features": "None",
                "disableLocalAuth": false,
                "allowedFqdnList": []
            }
        }
    ]
}

Úprava šablony

Než budete moct pomocí šablony vytvořit nové centrum v nové oblasti, musíte udělat nějaké změny. K úpravě šablony použijte Editor Visual Studio Code nebo textový editor.

Úprava názvu a umístění centra

  1. V horní části odeberte část parametru názvu kontejneru. ContosoHub nemá přidružený kontejner.

    "parameters": {
      ...
        "IotHubs_ContosoHub_containerName": {
            "type": "SecureString"
        },
      ...
    },
    
  2. Odeberte vlastnost storageEndpoints .

    "properties": {
      ...
        "storageEndpoints": {
        "$default": {
            "sasTtlAsIso8601": "PT1H",
            "connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
            "containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
        }
      },
      ...
    
    
  3. Pokud přesouváte centrum do nové oblasti, změňte vlastnost umístění v části prostředky.

    "location": "westus",
    

Aktualizace prostředků koncového bodu směrování

Při exportu šablony Resource Manager pro centrum, které má nakonfigurované směrování, uvidíte, že klíče pro tyto prostředky nejsou v exportované šabloně k dispozici. Jejich umístění je označeno hvězdičkou. Před importem šablony nového centra a vytvořením centra je nutné je vyplnit tak, že přejdete k těmto prostředkům na portálu a načte klíče.

Pokud jste přesunuli také prostředky směrování, aktualizujte název, ID a skupinu prostředků každého koncového bodu.

  1. Načtěte klíče potřebné pro kterýkoli ze směrovacích prostředků a vložte je do šablony. Klíče můžete načíst z prostředku v Azure Portal.

    • Pokud například směrujete zprávy do kontejneru úložiště, vyhledejte účet úložiště na portálu. V části Nastavení vyberte Přístupové klíče a pak zkopírujte jeden z klíčů. Klíč vypadá při prvním exportu šablony takto:

      "connectionString": "DefaultEndpointsProtocol=https;
      AccountName=fabrikamstorage1234;AccountKey=****",
      "containerName": "fabrikamresults",
      

      Po načtení klíče účtu pro účet úložiště ho vložte do šablony v AccountKey=**** klauzuli místo hvězdičky.

    • Pro fronty služby Service Bus získejte sdílený přístupový klíč odpovídající názvu SharedAccessKeyName. Tady je klíč a klíč SharedAccessKeyName v kódu JSON:

      "connectionString": "Endpoint=sb://fabrikamsbnamespace1234.servicebus.windows.net:5671/;
      SharedAccessKeyName=iothubroutes_FabrikamResources;
      SharedAccessKey=****;
      EntityPath=fabrikamsbqueue1234",
      
    • Totéž platí pro témata služby Service Bus a připojení služby Event Hubs.

Vytvoření nového centra načtením šablony

Vytvořte nové centrum pomocí upravené šablony. Pokud máte prostředky směrování, které se budou přesouvat, měly by se prostředky nastavit v novém umístění a odkazy v šabloně by se měly aktualizovat tak, aby odpovídaly. Pokud prostředky směrování nepřesouvejte, měly by být v šabloně s aktualizovanými klíči.

  1. Přihlaste se k webu Azure Portal.

  2. Vyberte Vytvořit prostředek.

  3. Ve vyhledávacím poli vyhledejte a vyberte nasazení šablony (nasazení pomocí vlastních šablon). Na obrazovce nasazení šablony vyberte Vytvořit.

  4. Na stránce Vlastní nasazení vyberte v editoru Vytvořit vlastní šablonu, která vám umožní nahrát šablonu ze souboru.

    Snímek obrazovky znázorňující příkaz pro vytvoření vlastní šablony

  5. Vyberte Načíst soubor.

    Snímek obrazovky s příkazem pro nahrání souboru šablony

  6. Vyhledejte novou šablonu, kterou jste upravili, vyberte ji a pak vyberte Otevřít. Šablona se načte v okně pro úpravy. Vyberte Uložit.

    Snímek obrazovky znázorňující načtení šablony

  7. Na stránce vlastního nasazení vyplňte následující pole.

    Předplatné: Vyberte předplatné, které chcete použít.

    Skupina prostředků: Vyberte existující skupinu prostředků nebo vytvořte novou.

    Oblast: Pokud jste vybrali existující skupinu prostředků, oblast se vyplní tak, aby odpovídala umístění skupiny prostředků. Pokud jste vytvořili novou skupinu prostředků, jedná se o její umístění.

    Připojovací řetězec: Vyplňte připojovací řetězec centra.

    Název centra: Pojmenujte nové centrum.

    Snímek obrazovky zobrazující stránku vlastního nasazení

  8. Vyberte tlačítko Zkontrolovat a vytvořit.

  9. Vyberte tlačítko Vytvořit. Portál ověří šablonu a nasadí nové centrum. Pokud máte konfigurační data směrování, jsou zahrnutá v novém centru, ale odkazuje na prostředky v předchozím umístění.

    Snímek obrazovky znázorňující konečnou stránku vlastního nasazení

Správa zařízení zaregistrovaných ve službě IoT Hub

Teď, když máte nové centrum v provozu, musíte zkopírovat všechna zařízení z původního centra do nového.

Existuje několik způsobů, jak zařízení zkopírovat. Buď jste zařízení původně zřídili pomocí služby Device Provisioning Service (DPS ), nebo jste to neudělali. Pokud jste to udělali, není tento proces složitý. Pokud jste to neudělali, může být tento proces komplikovaný.

Pokud jste ke zřízení zařízení nepoužíli DPS, můžete přeskočit další část a začít tím, že zařízení přesunete do nového centra pomocí importu nebo exportu.

Opětovné zřízení zařízení v novém centru pomocí DPS

Pokud chcete zařízení přesunout do nového umístění pomocí DPS, přečtěte si téma Postup opětovného zřízení zařízení. Až budete hotovi, můžete zobrazit zařízení v Azure Portal a ověřit, že jsou v novém umístění.

Přejděte do nového centra pomocí Azure Portal. Vyberte centrum a pak vyberte Zařízení IoT. Zobrazí se zařízení, která byla znovu zřízených do nového centra. Můžete také zobrazit vlastnosti nového centra.

Pokud jste implementovali směrování, otestujte a ujistěte se, že jsou vaše zprávy správně směrovány na prostředky.

Vrácení změn zpět po použití DPS

Pokud chcete vrátit změny zpět, znovu zřiďte zařízení z nového centra na staré.

Dokončili jste migraci centra a jeho zařízení. Můžete přeskočit na Vyčištění.

Použití importu a exportu k přesunutí zařízení do nového centra

Aplikace cílí na .NET Core, takže ji můžete spustit ve Windows nebo Linuxu. Můžete si stáhnout ukázku, načíst připojovací řetězce, nastavit příznaky pro to, které bity chcete spustit, a spustit ji. Můžete to udělat bez otevření kódu.

Stažení ukázky

  1. Ukázky IoT C# použijte tady: Azure IoT SDK pro C#. Stáhněte si soubor zip a rozbalte ho do počítače.

  2. Příslušný kód je v souboru ./iothub/service/samples/how to guides/ImportExportDevicesSample. Abyste mohli aplikaci spustit, nemusíte kód zobrazovat ani upravovat.

  3. Pokud chcete aplikaci spustit, zadejte tři připojovací řetězce a pět možností. Tato data předáte jako argumenty příkazového řádku, použijete proměnné prostředí nebo použijete jejich kombinaci. Možnosti předáme jako argumenty příkazového řádku a připojovací řetězce jako proměnné prostředí.

    Důvodem je to, že připojovací řetězce jsou dlouhé a negainly a pravděpodobně se nezmění, ale možná budete chtít změnit možnosti a spustit aplikaci více než jednou. Pokud chcete změnit hodnotu proměnné prostředí, musíte zavřít příkazové okno a Visual Studio nebo Visual Studio Code podle toho, co používáte.

Možnosti

Tady je pět možností, které zadáte při spuštění aplikace:

  • addDevices (argument 1) – tuto možnost nastavte na, True pokud chcete přidat virtuální zařízení, která se pro vás vygenerují. Tato zařízení se přidají do zdrojového centra. Nastavte také numToAdd (argument 2) a určete, kolik zařízení chcete přidat. Maximální počet zařízení, která můžete zaregistrovat do centra, je jeden milion. Účelem této možnosti je testování. Můžete vygenerovat určitý počet zařízení a pak je zkopírovat do jiného centra.

  • copyDevices (argument 3) – nastavte tuto možnost na True kopírování zařízení z jednoho centra do jiného.

  • deleteSourceDevices (argument 4) – pokud chcete True odstranit všechna zařízení zaregistrovaná ve zdrojovém centru, nastavte tuto možnost na . Před spuštěním tohoto příkazu doporučujeme počkat, až budete mít jistotu, že se všechna zařízení přenesla. Jakmile zařízení odstraníte, nebudete je moct získat zpět.

  • deleteDestDevices (argument 5) – pokud chcete odstranit všechna zařízení zaregistrovaná v cílovém centru, nastavte tuto možnost na True . Můžete to chtít udělat, pokud chcete zařízení zkopírovat více než jednou.

Základní příkaz je dotnet run, který řekne rozhraní .NET, aby se sestavil místní soubor csproj a pak ho spustil. Před spuštěním příkazu přidáte argumenty příkazového řádku na konec.

Příkazový řádek bude vypadat jako v těchto příkladech:

    // Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices

    // Add 1000 devices, don't copy them to the other hub, or delete them. 
    // The first argument is true, numToAdd is 50, and the other arguments are false.
    dotnet run true 1000 false false false 

    // Copy the devices you just added to the other hub; don't delete anything.
    // The first argument is false, numToAdd is 0, copy-devices is true, and the delete arguments are both false
    dotnet run false 0 true false false 

Použití proměnných prostředí pro připojovací řetězce

  1. Ke spuštění ukázky potřebujete připojovací řetězce ke starému a novému centru IoT a k účtu úložiště, který můžete použít pro dočasné pracovní soubory. Hodnoty pro tyto hodnoty uložíme do proměnných prostředí.

  2. Pokud chcete získat hodnoty připojovacího řetězce, přihlaste se k Azure Portal.

  3. Umístěte připojovací řetězce někam, kam je můžete načíst, například Poznámkový blok. Pokud zkopírujete následující, můžete připojovací řetězce vložit přímo tam, kde jsou. Nepřidávejte mezery kolem symbolu rovná se nebo se změní název proměnné. U připojovacích řetězců také nepotřebujete dvojité uvozovky. Pokud kolem připojovacího řetězce účtu úložiště vložíte uvozovky, skript selže.

    Nastavení proměnných prostředí ve Windows:

    SET IOTHUB_CONN_STRING=<put connection string to original IoT hub here>
    SET DEST_IOTHUB_CONN_STRING=<put connection string to destination IoT hub here>
    SET STORAGE_ACCT_CONN_STRING=<put connection string to the storage account here>
    

    Nastavení proměnných prostředí v Linuxu:

    export IOTHUB_CONN_STRING="<put connection string to original IoT hub here>"
    export DEST_IOTHUB_CONN_STRING="<put connection string to destination IoT hub here>"
    export STORAGE_ACCT_CONN_STRING="<put connection string to the storage account here>"
    
  4. V případě připojovacích řetězců služby IoT Hub přejděte na každé centrum na portálu. Centrum můžete vyhledat v části Prostředky . Pokud znáte skupinu prostředků, můžete přejít do části Skupiny prostředků, vybrat skupinu prostředků a pak vybrat centrum ze seznamu prostředků v této skupině prostředků.

  5. V nastavení centra vyberte Zásady sdíleného přístupu , pak vyberte iothubowner a zkopírujte jeden z připojovacích řetězců. To samé udělejte pro cílové centrum. Přidejte je do příslušných příkazů SET.

  6. V případě připojovacího řetězce účtu úložiště vyhledejte účet úložiště v části Prostředky nebo v jeho skupině prostředků a otevřete ho.

  7. V části Nastavení vyberte Přístupové klíče a zkopírujte jeden z připojovacích řetězců. Vložte připojovací řetězec do textového souboru pro příslušný příkaz SET.

Teď máte proměnné prostředí v souboru s příkazy SET a víte, jaké jsou argumenty příkazového řádku. Pojďme spustit ukázku.

Spuštění ukázkové aplikace a použití argumentů příkazového řádku

  1. Otevřete okno příkazového řádku. Vyberte Windows a zadejte command prompt okno příkazového řádku.

  2. Postupně zkopírujte příkazy, které nastavují proměnné prostředí, vložte je do okna příkazového řádku a vyberte Enter. Až budete hotovi, zadejte SET do okna příkazového řádku proměnné prostředí a jejich hodnoty. Jakmile je zkopírujete do okna příkazového řádku, nemusíte je kopírovat znovu, pokud neotevřete nové okno příkazového řádku.

  3. V okně příkazového řádku změňte adresáře, dokud nebudete v souboru ./ImportExportDevicesSample (kde existuje soubor ImportExportDevicesSample.csproj). Pak zadejte následující a přidejte argumenty příkazového řádku.

    // Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices
    dotnet run arg1 arg2 arg3 arg4 arg5
    

    Příkaz dotnet sestaví a spustí aplikaci. Vzhledem k tomu, že při spuštění aplikace předáváte možnosti, můžete jejich hodnoty při každém spuštění aplikace změnit. Můžete ho například chtít spustit jednou a vytvořit nová zařízení, pak ho znovu spustit a zkopírovat tato zařízení do nového centra atd. Všechny kroky můžete provést také ve stejném spuštění, i když doporučujeme neodstraňovat žádná zařízení, dokud si nejste jistí, že migraci dokončíte. Tady je příklad, který vytvoří 1000 zařízení a pak je zkopíruje do druhého centra.

    // Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices
    
    // Add 1000 devices, don't copy them to the other hub or delete them. 
    dotnet run true 1000 false false false 
    
    // Do not add any devices. Copy the ones you just created to the other hub; don't delete anything.
    dotnet run false 0 true false false 
    

    Jakmile ověříte, že se zařízení úspěšně zkopírovala, můžete je ze zdrojového centra odebrat takto:

    // Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices
    // Delete the devices from the source hub.
    dotnet run false 0 false true false 
    

Spuštění ukázkové aplikace pomocí sady Visual Studio

  1. Pokud chcete aplikaci spustit v sadě Visual Studio, změňte aktuální adresář na složku, ve které se nachází soubor azureiot.sln. Potom spuštěním tohoto příkazu v okně příkazového řádku otevřete řešení v sadě Visual Studio. Musíte to provést ve stejném příkazovém okně, ve kterém jste nastavili proměnné prostředí, aby tyto proměnné byly známé.

    azureiot.sln
    
  2. Klikněte pravým tlačítkem na projekt ImportExportDevicesSample a vyberte Nastavit jako spouštěný projekt.

  3. Nastavte proměnné v horní části souboru Program.cs ve složce ImportExportDevicesSample pro pět možností.

    // Add randomly created devices to the source hub.
    private static bool addDevices = true;
    //If you ask to add devices, this will be the number added.
    private static int numToAdd = 0; 
    // Copy the devices from the source hub to the destination hub.
    private static bool copyDevices = false;
    // Delete all of the devices from the source hub. (It uses the IoTHubConnectionString).
    private static bool deleteSourceDevices = false;
    // Delete all of the devices from the destination hub. (Uses the DestIotHubConnectionString).
    private static bool deleteDestDevices = false;
    
  4. Výběrem klávesy F5 spusťte aplikaci. Po dokončení spuštění si můžete zobrazit výsledky.

Zobrazení výsledků

Zařízení můžete zobrazit v Azure Portal a ověřit, že jsou v novém umístění.

  1. Přejděte do nového centra pomocí Azure Portal. Vyberte centrum a pak vyberte Zařízení IoT. Zobrazí se zařízení, která jste zkopírovali ze starého centra do nového centra. Můžete také zobrazit vlastnosti nového centra.

  2. Zkontrolujte chyby při importu nebo exportu tak, že přejdete do účtu úložiště Azure v Azure Portal a v kontejneru devicefiles vyhledáte ImportErrors.log. Pokud je tento soubor prázdný (velikost je 0), nedošlo k žádným chybám. Pokud se pokusíte importovat stejné zařízení více než jednou, zařízení podruhé odmítne a přidá do souboru protokolu chybovou zprávu.

Potvrzení změn

V tomto okamžiku jste centrum zkopírovali do nového umístění a migrovali jste zařízení do nového centra. Teď musíte udělat změny, aby zařízení fungovala s novým centrem.

Pokud chcete změny potvrdit, musíte provést následující kroky:

  • Aktualizujte každé zařízení a změňte název hostitele IoT Hub tak, aby odkazovat IoT Hub název hostitele na nové centrum. Měli byste to provést pomocí stejné metody, kterou jste použili při prvním zřízení zařízení.

  • Změňte všechny aplikace, které odkazují na staré centrum tak, aby odkazovaly na nové centrum.

  • Po dokončení by nové centrum mělo být spuštěné a spuštěné. Staré centrum by nemělo mít žádná aktivní zařízení a mělo by být v odpojeném stavu.

Vrácení změn zpět

Pokud se rozhodnete vrátit změny zpět, postupujte následovně:

  • Aktualizujte každé zařízení tak, aby změnilo název hostitele IoT Hub tak, aby odkazovat na název hostitele IoT Hub pro staré centrum. Měli byste to provést pomocí stejné metody, kterou jste použili při prvním zřízení zařízení.

  • Změňte všechny aplikace, které odkazují na nové centrum, aby odkazovaly na staré centrum. Pokud například používáte Azure Analytics, možná budete muset překonfigurovat vstup Azure Stream Analytics.

  • Odstraňte nové centrum.

  • Pokud máte prostředky směrování, měla by konfigurace ve starém centru stále odkazovat na správnou konfiguraci směrování a měla by s těmito prostředky pracovat i po restartování centra.

Kontrola výsledků

Pokud chcete zkontrolovat výsledky, změňte řešení IoT tak, aby ukazovalo na centrum v novém umístění, a spusťte ho. Jinými slovy, proveďte stejné akce s novým centrem, které jste provedli s předchozím centrem, a ujistěte se, že fungují správně.

Pokud jste implementovali směrování, otestujte a ujistěte se, že jsou vaše zprávy správně směrovány na prostředky.

Vyčištění

Nevykládejte čištění, dokud si nejste jistí, že je nové centrum spuštěné a zařízení budou fungovat správně. Pokud tuto funkci používáte, nezapomeňte také otestovat směrování. Až budete připraveni, vyčistěte staré prostředky provedením těchto kroků:

  • Pokud jste to ještě neudělali, odstraňte staré centrum. Tím se z centra odeberou všechna aktivní zařízení.

  • Pokud máte prostředky směrování, které jste přesunuli do nového umístění, můžete staré prostředky směrování odstranit.

Další kroky

Migrovali jste centrum IoT do nového centra v nové oblasti, a to i se zařízeními. Další informace o provádění hromadných operací s registrem identit ve službě IoT Hub najdete v tématu Hromadný import a export identit zařízení IoT Hub.