Azure IoT Hub manuális migrálása Azure Resource Manager-sablonnal

Az Azure Portal, az Azure Resource Manager sablonok és a Azure IoT Hub szolgáltatás SDK-k használatával migrálhat egy IoT Hubot egy új régióba, egy új szintre vagy egy új konfigurációba.

A cikkben szereplő lépések akkor hasznosak, ha a következőket szeretné:

A központ migrálásához rendszergazdai hozzáféréssel rendelkező előfizetésre van szüksége az eredeti központhoz. Az új központot egy új erőforráscsoportba és régióba helyezheti, ugyanabban az előfizetésben, mint az eredeti központ, vagy akár egy új előfizetésben is. Egyszerűen nem használhatja ugyanazt a nevet, mert a központ nevének globálisan egyedinek kell lennie.

Az automatikus és manuális migrálási lépések összehasonlítása

A cikk eredménye hasonló az IoT Hub automatikus migrálásához az Azure CLI használatával, de egy másik folyamattal. Mielőtt hozzákezdene, döntse el, hogy melyik folyamat megfelelő a forgatókönyvhöz.

  • A manuális folyamat (ez a cikk):

    • Migrálja az eszközregisztrációs adatbázist, valamint az útválasztási és végponti adatokat. Manuálisan kell újból létrehoznia az új IoT Hub egyéb konfigurációs adatait.
    • Gyorsabb nagy számú eszköz (például több mint 100 000) migrálásakor.
    • Azure Storage-fiókot használ az eszközregisztrációs adatbázis átviteléhez.
    • A kapcsolati sztringeket megtisztítja az útválasztáshoz és a fájlfeltöltési végpontokhoz az ARM-sablon kimenetéből, és manuálisan kell hozzáadnia őket.
  • Az Azure CLI folyamata:

    • Migrálja az eszközregisztrációs adatbázist, az útválasztási és végpontadatokat, valamint egyéb konfigurációs adatokat, például IoT Edge üzembe helyezéseket vagy automatikus eszközfelügyeleti konfigurációkat.
    • Kisebb számú eszköz (például akár 10 000) migrálásához könnyebb.
    • Nincs szükség Azure Storage-fiókra.
    • Kapcsolati sztringeket gyűjt az útválasztási és fájlfeltöltési végpontokhoz, és tartalmazza őket az ARM-sablon kimenetében.

Megfontolandó szempontok

Az IoT Hub migrálása előtt több szempontot is figyelembe kell venni.

  • Győződjön meg arról, hogy az eredeti helyen elérhető összes funkció elérhető az új helyen is. Egyes szolgáltatások előzetes verzióban érhetők el, és nem minden szolgáltatás érhető el mindenhol.

  • Az áttelepített verzió létrehozása és ellenőrzése előtt ne távolítsa el az eredeti erőforrásokat. Miután eltávolította a központot, az örökre eltűnt, és nem lehet helyreállítani, hogy ellenőrizze a beállításokat vagy az adatokat, hogy meggyőződjön arról, hogy a központ megfelelően van replikálva.

  • Az eredeti IoT Hub adatai nem lesznek migrálva. Ezek az adatok tartalmazzák az eszközüzeneteket, a felhőből az eszközre (C2D) vonatkozó parancsokat, valamint a feladatokkal kapcsolatos információkat, például az ütemezéseket és az előzményeket. A metrikák és a naplózási eredmények szintén nem lesznek migrálva.

  • A migrálás állásidejét ütemeznie kell. Az eszközök új központba való klónozása időt vesz igénybe. Ha az Import/Export metódust használja, a teljesítményteszt során kiderült, hogy körülbelül két órát vehet igénybe 500 000 eszköz áthelyezése, és négy órát is igénybe vehet egymillió eszköz áthelyezése.

  • Az eszközöket az eszközök leállítása vagy módosítása nélkül másolhatja az új központba.

    • Ha az eszközöket eredetileg a DPS használatával hozták létre, frissítse a regisztrációkat, hogy az új IoT Hubra mutasson. Ezután az egyes eszközökben tárolt kapcsolati adatok frissítéséhez végezze el újra az eszközök újraépítését.

    • Ellenkező esetben az importálási/exportálási módszerrel kell áthelyezni az eszközöket, majd módosítani kell az eszközöket az új központ használatához. Beállíthatja például, hogy az eszköz az ikerpéldány kívánt tulajdonságaiból használja a IoT Hub gazdagép nevét. Az eszköz felveszi ezt a IoT Hub gazdagép nevét, leválasztja az eszközt a régi központról, és újra csatlakoztatja az újhoz.

  • Frissítenie kell a tanúsítványokat, hogy azokat az új erőforrásokkal együtt használhassa. Emellett valószínűleg valahol egy DNS-táblában van definiálva a központ, és frissítenie kell ezeket a DNS-információkat.

Módszertan

Ezt az általános módszert javasoljuk az IoT Hub migrálásához.

  1. Exportálja a központot és annak beállításait egy Resource Manager sablonba.

  2. Végezze el a sablon szükséges módosításait, például frissítse a név összes előfordulását és a migrált központ helyét. Az üzenet-útválasztási végpontokhoz használt sablon összes erőforrásához frissítse az erőforrás sablonjában található kulcsot.

  3. Importálja a sablont egy új erőforráscsoportba az új helyen. Ez a lépés létrehozza az új IoT Hubot.

  4. Szükség szerint hibakeresés.

  5. Adjon hozzá mindent, amit nem exportáltak a sablonba.

    A fogyasztói csoportok például nem lesznek exportálva a sablonba. A fogyasztói csoportokat manuálisan kell hozzáadnia a sablonhoz, vagy használnia kell a Azure Portal a központ létrehozása után.

  6. Másolja az eszközöket az eredeti központból az új központba. Ezt a folyamatot az IoT Hubon regisztrált eszközök kezelése című szakasz ismerteti.

Üzenetútmutató kezelése

Ha a központ üzenet-útválasztást használ, a hub sablonjának exportálása magában foglalja az útválasztási konfigurációt, de maguk az erőforrások nem. Ha az IoT Hubot egy új régióba migrálja, el kell döntenie, hogy áthelyezi-e az útválasztási erőforrásokat az új helyre is, vagy a helyén hagyja őket, és továbbra is az "adott módon" használja őket. Előfordulhat, hogy az üzenetek útválasztása egy másik régióban lévő végponterőforrások felé kis teljesítménybeli találatot jelent.

Ha a központ üzenet-útválasztást használ, két lehetőség közül választhat.

  • Helyezze át az útválasztási végpontokhoz használt erőforrásokat az új helyre.

    1. Hozza létre az új erőforrásokat manuálisan a Azure Portal, vagy Resource Manager sablonok használatával.

    2. Nevezze át az összes erőforrást, amikor az új helyen hozza létre őket, mivel globálisan egyedi neveket igényelnek.

    3. Az új központ létrehozása előtt frissítse az erőforrásneveket és az erőforráskulcsokat az új központ sablonjában. Az erőforrásoknak jelen kell lenniük az új központ létrehozásakor.

  • Ne helyezze át az útválasztási végpontokhoz használt erőforrásokat. Használja őket "helyben".

    1. A sablon szerkesztésének lépésében le kell kérnie az egyes útválasztási erőforrások kulcsait, és be kell őket helyeznie a sablonba az új központ létrehozása előtt.

    2. A központ továbbra is hivatkozik az eredeti útválasztási erőforrásokra, és konfigurált módon irányítja az üzeneteket hozzájuk. Kis teljesítményre lesz szüksége, mert a központ és az útválasztási végpont erőforrásai nem ugyanabban a helyen találhatók.

Felkészülés a központ másik régióba való migrálására

Ez a szakasz konkrét utasításokat tartalmaz a központ migrálásához.

Az eredeti központ exportálása erőforrássablonba

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen az áthelyezni kívánt IoT Hubra.

  3. Válassza a Sablon exportálása lehetőséget a központ tulajdonságainak és beállításainak listájából.

    Képernyőkép az IoT Hub sablonjának exportálására szolgáló parancsról.

  4. A sablon letöltéséhez válassza a Letöltés lehetőséget. Mentse a fájlt valahová, ahol újra megtalálhatja.

    Képernyőkép az IoT Hub sablonjának letöltésére szolgáló parancsról.

A sablon megtekintése

Nyissa meg a letöltött sablont, amely egy zip-fájlban található. Bontsa ki a zip-fájlt, és keresse meg a nevű template.jsonfájlt.

Az alábbi példa egy általános központra mutat be útválasztási konfiguráció nélkül. Ez egy ContosoHub nevű S1 szintű központ (1 egységtel) a Westus régióban:

{
    "$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": []
            }
        }
    ]
}

A sablon szerkesztése

Néhány módosítást el kell végeznie ahhoz, hogy a sablonnal létrehozhassa az új központot az új régióban. A sablon szerkesztéséhez használja a Visual Studio Code-ot vagy egy szövegszerkesztőt.

A központ nevének és helyének szerkesztése

  1. Távolítsa el a felül található tárolónévparaméter szakaszt. A ContosoHub nem rendelkezik társított tárolóval.

    "parameters": {
      ...
        "IotHubs_ContosoHub_containerName": {
            "type": "SecureString"
        },
      ...
    },
    
  2. Távolítsa el a storageEndpoints tulajdonságot .

    "properties": {
      ...
        "storageEndpoints": {
        "$default": {
            "sasTtlAsIso8601": "PT1H",
            "connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
            "containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
        }
      },
      ...
    
    
  3. Ha a központot egy új régióba helyezi át, módosítsa a helytulajdonságot az erőforrások alatt.

    "location": "westus",
    

Az útválasztási végpont erőforrásainak frissítése

Ha olyan központ Resource Manager sablonját exportálja, amelynek útválasztása konfigurálva van, láthatja, hogy az erőforrások kulcsai nem szerepelnek az exportált sablonban. Elhelyezésüket csillag jelöli. Az új központ sablonjának importálása és a központ létrehozása előtt meg kell adnia ezeket az erőforrásokat a portálon, és le kell töltenie a kulcsokat.

Ha az útválasztási erőforrásokat is áthelyezte, frissítse az egyes végpontok nevét, azonosítóját és erőforráscsoportját is.

  1. Kérje le az útválasztási erőforrásokhoz szükséges kulcsokat, és helyezze őket a sablonba. A kulcs(ok) lekérhetők a Azure Portal lévő erőforrásból.

    • Ha például egy tárolóba irányít üzeneteket, keresse meg a tárfiókot a portálon. A Beállítások szakaszban válassza a Hozzáférési kulcsok elemet, majd másolja ki az egyik kulcsot. Így néz ki a kulcs a sablon első exportálásakor:

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

      Miután lekérte a tárfiók fiókkulcsát, helyezze a sablonba a AccountKey=**** csillagok helyén lévő záradékban.

    • Service Bus-üzenetsorok esetén kérje le a SharedAccessKeyName azonosítónak megfelelő megosztott hozzáférési kulcsot. Itt van a kulcs és a SharedAccessKeyName json:

      "connectionString": "Endpoint=sb://fabrikamsbnamespace1234.servicebus.windows.net:5671/;
      SharedAccessKeyName=iothubroutes_FabrikamResources;
      SharedAccessKey=****;
      EntityPath=fabrikamsbqueue1234",
      
    • Ugyanez vonatkozik a Service Bus-témakörökre és az Event Hubs-kapcsolatokra is.

Az új központ létrehozása a sablon betöltésével

Hozza létre az új központot a szerkesztett sablonnal. Ha olyan útválasztási erőforrásokkal rendelkezik, amelyeket át szeretne helyezni, az erőforrásokat az új helyen kell beállítani, és a sablon hivatkozásait frissíteni kell az egyezésre. Ha nem helyezi át az útválasztási erőforrásokat, akkor a sablonban kell lenniük a frissített kulcsokkal.

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza az Erőforrás létrehozása lehetőséget.

  3. A keresőmezőben keresse meg és válassza ki a sablontelepítést (üzembe helyezés egyéni sablonokkal). A sablon üzembe helyezésének képernyőjén válassza a Létrehozás lehetőséget.

  4. Az Egyéni üzembe helyezés lapon válassza a Saját sablon létrehozása lehetőséget a szerkesztőben, amely lehetővé teszi a sablon fájlból való feltöltését.

    Képernyőkép a saját sablon létrehozására szolgáló parancsról.

  5. Válassza a Fájl betöltése lehetőséget.

    Képernyőkép a sablonfájl feltöltésére szolgáló parancsról.

  6. Keresse meg a szerkesztett új sablont, és jelölje ki, majd válassza a Megnyitás lehetőséget. Betölti a sablont a szerkesztési ablakban. Kattintson a Mentés gombra.

    Képernyőkép a sablon betöltéséről.

  7. Töltse ki a következő mezőket az egyéni üzembehelyezési oldalon.

    Előfizetés: Válassza ki a használni kívánt előfizetést.

    Erőforráscsoport: Válasszon ki egy meglévő erőforráscsoportot, vagy hozzon létre egy újat.

    Régió: Ha egy meglévő erőforráscsoportot jelölt ki, a rendszer kitölti a régiót, hogy megfeleljen az erőforráscsoport helyének. Ha létrehozott egy új erőforráscsoportot, ez a helye.

    Kapcsolati sztring: Töltse ki a központ kapcsolati sztring.

    Központ neve: Adjon nevet az új központnak.

    Képernyőkép az egyéni üzembehelyezési oldalról

  8. Válassza az Áttekintés + létrehozás lehetőséget.

  9. Válassza a Létrehozás gombot. A portál ellenőrzi a sablont, és üzembe helyezi az új központot. Ha útválasztási konfigurációs adatokkal rendelkezik, az az új központ részét képezi, de a korábbi helyen lévő erőforrásokra mutat.

    Képernyőkép a végső egyéni üzembe helyezési oldalról

Az IoT Hubon regisztrált eszközök kezelése

Most, hogy már működik az új központ, az összes eszközt át kell másolnia az eredeti központból az újba.

Az eszközök másolásának többféle módja is van. Eredetileg a Device Provisioning Service-t (DPS) használta az eszközök kiépítéséhez, vagy nem. Ha igen, ez a folyamat nem nehéz. Ha nem tette, ez a folyamat bonyolult lehet.

Ha nem a DPS-t használta az eszközök üzembe helyezéséhez, kihagyhatja a következő szakaszt, és az Importálás/exportálás használatával az új központba helyezheti át az eszközöket.

A DPS használata az új központ eszközeinek újraépítéséhez

Ha a DPS használatával szeretné áthelyezni az eszközöket az új helyre, olvassa el az Eszközök újbóli üzembe helyezése című témakört. Ha végzett, megtekintheti az eszközöket a Azure Portal, és ellenőrizheti, hogy az új helyen vannak-e.

Lépjen az új központra a Azure Portal használatával. Válassza ki a központot, majd válassza az IoT-eszközök lehetőséget. Láthatja azokat az eszközöket, amelyeket az új központba újítottak fel. Az új központ tulajdonságait is megtekintheti.

Ha útválasztást hajtott végre, tesztelje és győződjön meg arról, hogy az üzenetek megfelelően vannak átirányítva az erőforrásokhoz.

Módosítások visszaállítása a DPS használata után

Ha vissza szeretné dobni a módosításokat, az eszközöket az új központból a régire cserélheti újra.

Ezzel befejezte a központ és eszközei migrálását. A Tisztítás gombra ugorhat.

Az eszközök áthelyezése az új központba importálás-exportálás használatával

Az alkalmazás a .NET Core-t célozza meg, így Windows vagy Linux rendszeren is futtathatja. Letöltheti a mintát, lekérheti a kapcsolati sztringeket, beállíthatja a futtatni kívánt bitek jelzőit, és futtathatja azt. Ezt úgy teheti meg, hogy nem nyitja meg a kódot.

A minta letöltése

  1. Használja az IoT C#-mintákat itt: Azure IoT SDK for C#. Töltse le a zip-fájlt, és bontsa ki a számítógépen.

  2. A vonatkozó kód a ./iothub/service/samples/how to guides/ImportExportDevicesSample fájlban található. Az alkalmazás futtatásához nem kell megtekintenie vagy szerkesztenie a kódot.

  3. Az alkalmazás futtatásához adjon meg három kapcsolati sztringet és öt beállítást. Ezeket az adatokat parancssori argumentumként adja át, vagy környezeti változókat használ, vagy a kettő kombinációját használja. A beállításokat parancssori argumentumként, a kapcsolati sztringeket pedig környezeti változókként adjuk át.

    Ennek az az oka, hogy a kapcsolati sztringek hosszúak és helytelenek, és nem valószínű, hogy megváltoznak, de előfordulhat, hogy módosítani szeretné a beállításokat, és többször is futtatni szeretné az alkalmazást. Egy környezeti változó értékének módosításához be kell zárnia a parancsablakot és a Visual Studiót vagy a Visual Studio Code-ot, attól függően, hogy melyiket használja.

Beállítások

Az alkalmazás futtatásakor az alábbi öt lehetőséget adja meg:

  • addDevices (1. argumentum) – állítsa ezt a beállítást True , ha az Ön számára létrehozott virtuális eszközöket szeretne hozzáadni. Ezek az eszközök bekerülnek a forrásközpontba. Emellett állítsa a numToAdd (2. argumentum) értéket a hozzáadni kívánt eszközök számának megadásához. A központba regisztrálható eszközök maximális száma egymillió. Ennek a lehetőségnek a célja a tesztelés. Létrehozhat egy adott számú eszközt, majd átmásolhatja őket egy másik központba.

  • copyDevices (3. argumentum) – ezt a beállítást úgy állíthatja be, hogy True az eszközöket az egyik központból a másikba másolja.

  • deleteSourceDevices (4. argumentum) – ezzel a beállítással True törölheti a forrásközpontban regisztrált összes eszközt. Javasoljuk, hogy várjunk, amíg biztosan nem lesz biztos benne, hogy az összes eszköz át lett helyezve a futtatás előtt. Az eszközök törlése után nem szerezheti vissza őket.

  • deleteDestDevices (5. argumentum) – ezzel a beállítással True törölheti a célközpontban regisztrált összes eszközt. Ezt akkor érdemes lehet elvégeznie, ha többször szeretné másolni az eszközöket.

Az alapszintű parancs a dotnet run, amely utasítja a .NET-et, hogy hozza létre a helyi csproj fájlt, majd futtassa. A futtatás előtt adja hozzá a parancssori argumentumokat a végéhez.

A parancssor a következő példákhoz hasonlóan fog kinézni:

    // 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 

Környezeti változók használata a kapcsolati sztringekhez

  1. A minta futtatásához szüksége van a kapcsolati sztringekre a régi és az új IoT Hubshoz, valamint egy tárfiókhoz, amelyet ideiglenes munkafájlokhoz használhat. Ezek értékeit környezeti változókban tároljuk.

  2. A kapcsolati sztring értékek lekéréséhez jelentkezzen be a Azure Portal.

  3. Helyezze a kapcsolati sztringeket olyan helyre, ahol lekérheti őket, például a Jegyzettömb. Ha az alábbiakat másolja, a kapcsolati sztringeket közvetlenül oda illessze be, ahová a kapcsolati sztringek kerülnek. Ne adjon hozzá szóközöket az egyenlőségjelhez, vagy módosítsa a változó nevét. Emellett nincs szükség dupla idézőjelekre a kapcsolati sztringek körül. Ha idézőjeleket helyez el a tárfiók kapcsolati sztring, a szkript meghiúsul.

    Állítsa be a környezeti változókat a Windowsban:

    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>
    

    Állítsa be a környezeti változókat Linux rendszeren:

    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. Az IoT Hub kapcsolati sztringjeihez lépjen a portálon található egyes központokhoz. A központ erőforrásai között kereshet. Ha ismeri az erőforráscsoportot, lépjen az Erőforráscsoportok elemre, válassza ki az erőforráscsoportot, majd válassza ki a központot az adott erőforráscsoportban lévő eszközök listájából.

  5. A központ Beállításai területen válassza a Megosztott hozzáférési szabályzatok lehetőséget, majd válassza az iothubowner elemet , és másolja ki az egyik kapcsolati sztringet. Végezze el ugyanezt a célközpont esetében is. Adja hozzá őket a megfelelő SET parancshoz.

  6. A tárfiók kapcsolati sztring keresse meg a tárfiókot az Erőforrások területen vagy az Erőforráscsoport alatt, és nyissa meg.

  7. A Beállítások szakaszban válassza a Hozzáférési kulcsok lehetőséget, és másolja ki az egyik kapcsolati sztringet. Helyezze a kapcsolati sztring a szövegfájlba a megfelelő SET parancshoz.

Most már rendelkezik a környezeti változókkal egy SET parancsokat tartalmazó fájlban, és tudja, mik a parancssori argumentumok. Futtassuk a mintát.

A mintaalkalmazás futtatása parancssori argumentumokkal

  1. Nyisson meg egy parancsablakot. Válassza a Windows lehetőséget, és írja be command prompt a parancsot a parancssor ablakának lekéréséhez.

  2. Másolja ki egyenként a környezeti változókat tartalmazó parancsokat, illessze be őket a parancssori ablakba, és válassza az Enter lehetőséget. Ha végzett, írja be SET a parancssori ablakba a környezeti változók és azok értékeinek megtekintéséhez. Miután átmásolta ezeket a parancssori ablakba, nem kell újra másolnia őket, hacsak nem nyit meg egy új parancssori ablakot.

  3. A parancssori ablakban módosítsa a könyvtárakat, amíg a ./ImportExportDevicesSample fájlba nem kerül (ahol az ImportExportDevicesSample.csproj fájl létezik). Ezután írja be a következőt, és adja meg a parancssori argumentumokat.

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

    A dotnet parancs létrehozza és futtatja az alkalmazást. Mivel az alkalmazás futtatásakor adja meg a beállításokat, az alkalmazás minden futtatásakor módosíthatja a beállítások értékeit. Előfordulhat például, hogy egyszer szeretné futtatni, majd új eszközöket létrehozni, majd újra futtatni, majd átmásolni ezeket az eszközöket egy új központba, és így tovább. Az összes lépést ugyanabban a futtatásban is végrehajthatja, bár azt javasoljuk, hogy ne töröljön eszközöket, amíg nem biztos abban, hogy végzett az áttelepítéssel. Íme egy példa, amely 1000 eszközt hoz létre, majd átmásolja őket a másik központba.

    // 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 
    

    Miután ellenőrizte, hogy az eszközök másolása sikeresen megtörtént-e, a következő módon távolíthatja el az eszközöket a forrásközpontból:

    // 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 
    

A mintaalkalmazás futtatása a Visual Studióval

  1. Ha az alkalmazást a Visual Studióban szeretné futtatni, módosítsa az aktuális könyvtárat arra a mappára, amelyben az azureiot.sln fájl található. Ezután futtassa ezt a parancsot a parancssori ablakban a megoldás Visual Studióban való megnyitásához. Ezt ugyanabban a parancsablakban kell elvégeznie, amelyben a környezeti változókat állítja be, hogy ezek a változók ismertek legyenek.

    azureiot.sln
    
  2. Kattintson a jobb gombbal az ImportExportDevicesSample projektre, és válassza a Beállítás indítási projektként lehetőséget.

  3. Állítsa be a Program.cs tetején található változókat az ImportExportDevicesSample mappában az öt beállításhoz.

    // 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. Az alkalmazás futtatásához válassza az F5 lehetőséget. A futtatás befejezése után megtekintheti az eredményeket.

Az eredmények megtekintése

Megtekintheti az eszközöket a Azure Portal, és ellenőrizheti, hogy az új helyen vannak-e.

  1. Lépjen az új központra a Azure Portal használatával. Válassza ki a központot, majd válassza az IoT-eszközök lehetőséget. Láthatja a régi központból az új központba másolt eszközöket. Az új központ tulajdonságait is megtekintheti.

  2. Ellenőrizze az importálási/exportálási hibákat. Ehhez keresse meg az Azure Storage-fiókot a Azure Portal, és keresse meg a devicefiles tárolót a ImportErrors.logszámára. Ha ez a fájl üres (a méret 0), nem történt hiba. Ha többször próbálja importálni ugyanazt az eszközt, az másodszor is elutasítja az eszközt, és hibaüzenetet ad a naplófájlhoz.

A módosítások véglegesítése

Ezen a ponton átmásolta a központot az új helyre, és migrálta az eszközöket az új központba. Most módosítania kell, hogy az eszközök működjenek az új központtal.

A módosítások véglegesítéséhez kövesse az alábbi lépéseket:

  • Frissítse az egyes eszközöket úgy, hogy az IoT Hub gazdagép nevét úgy módosítsa, hogy a IoT Hub gazdagép nevét az új központra mutasson. Ezt ugyanazt a módszert kell használnia, amelyet az eszköz első kiépítésekor használt.

  • Módosítsa az összes olyan alkalmazást, amely a régi központra hivatkozik, hogy az új központra mutasson.

  • Ha végzett, az új központnak működőképesnek kell lennie. A régi központnak nem szabad aktív eszközökkel rendelkeznie, és leválasztott állapotban kell lennie.

A módosítások visszaállítása

Ha úgy dönt, hogy visszaállítja a módosításokat, az alábbi lépéseket kell elvégeznie:

  • Frissítse az összes eszközt, hogy módosítsa a IoT Hub Állomásnevet úgy, hogy a régi központ IoT Hub állomásnevére mutasson. Ezt ugyanazt a módszert kell használnia, amelyet az eszköz első kiépítésekor használt.

  • Módosítsa az új központra hivatkozó alkalmazásokat, hogy a régi központra mutasson. Ha például az Azure Analyticset használja, előfordulhat, hogy újra kell konfigurálnia az Azure Stream Analytics-bemenetet.

  • Törölje az új központot.

  • Ha vannak útválasztási erőforrásai, a régi központ konfigurációjának továbbra is a megfelelő útválasztási konfigurációra kell mutatnia, és a központ újraindítása után is működnie kell ezekkel az erőforrásokkal.

Az eredmények ellenőrzése

Az eredmények ellenőrzéséhez módosítsa az IoT-megoldást úgy, hogy az az új helyen lévő központra mutasson, és futtassa. Más szóval hajtsa végre ugyanazokat a műveleteket az előző központtal végrehajtott új központtal, és győződjön meg arról, hogy megfelelően működnek.

Ha útválasztást implementált, tesztelje, és ellenőrizze, hogy az üzenetek megfelelően vannak-e átirányítva az erőforrásokhoz.

A fölöslegessé vált elemek eltávolítása

Ne törölje a elemet, amíg nem biztos benne, hogy az új központ működik és működik, és az eszközök megfelelően működnek. Győződjön meg arról is, hogy teszteli az útválasztást, ha ezt a funkciót használja. Ha készen áll, törölje a régi erőforrásokat az alábbi lépések végrehajtásával:

  • Ha még nem tette meg, törölje a régi központot. Ezzel eltávolítja az összes aktív eszközt a központból.

  • Ha vannak útválasztási erőforrásai, amelyeket az új helyre helyezett át, törölheti a régi útválasztási erőforrásokat.

Következő lépések

Áttelepített egy IoT Hubot egy új, az eszközökkel kiegészített régióban lévő új központba. Az IoT Hub identitásjegyzékén végzett tömeges műveletekről további információt a IoT Hub eszközidentitások tömeges importálása és exportálása című témakörben talál.