Cara memigrasikan hub Azure IoT secara manual menggunakan templat Azure Resource Manager
Gunakan portal Azure, templat Azure Resource Manager, dan SDK layanan Azure IoT Hub untuk memigrasikan hub IoT ke wilayah baru, tingkat baru, atau konfigurasi baru.
Langkah-langkah dalam artikel ini berguna jika Anda ingin:
- Tingkatkan dari tingkat gratis ke hub IoT tingkat dasar atau standar.
- Memindahkan hub IoT ke wilayah baru.
- Ekspor informasi status hub IoT untuk memiliki sebagai cadangan.
- Tingkatkan jumlah partisi untuk hub IoT.
- Siapkan hub untuk pengembangan, bukan produksi, lingkungan.
- Aktifkan implementasi kustom ketersediaan tinggi multi-hub. Untuk informasi selengkapnya, lihat bagian Cara mencapai bagian HA lintas wilayah dari pemulihan bencana dan ketersediaan tinggi IoT Hub.
Untuk memigrasikan hub, Anda memerlukan langganan dengan akses administratif ke hub asli. Anda dapat meletakkan hub baru di grup dan wilayah sumber daya baru, dalam langganan yang sama dengan hub asli, atau bahkan di langganan baru. Anda tidak dapat menggunakan nama yang sama karena nama hub harus unik secara global.
Membandingkan langkah-langkah migrasi otomatis dan manual
Hasil artikel ini mirip dengan Cara memigrasikan hub IoT secara otomatis menggunakan Azure CLI, tetapi dengan proses yang berbeda. Sebelum memulai, putuskan proses mana yang tepat untuk skenario Anda.
Proses manual (artikel ini):
- Memigrasikan registri perangkat Anda dan informasi perutean dan titik akhir Anda. Anda harus membuat ulang detail konfigurasi lain secara manual di hub IoT baru.
- Lebih cepat untuk memigrasikan sejumlah besar perangkat (misalnya, lebih dari 100.000).
- Menggunakan akun Azure Storage untuk mentransfer registri perangkat.
- Scrubs string koneksi untuk perutean dan titik akhir pengunggahan file yang menggunakan autentikasi berbasis kunci dari output templat ARM, dan Anda perlu menambahkannya kembali secara manual.
Proses Azure CLI:
- Memigrasikan registri perangkat Anda, informasi perutean dan titik akhir Anda, dan detail konfigurasi lainnya seperti penyebaran IoT Edge atau konfigurasi manajemen perangkat otomatis.
- Lebih mudah untuk memigrasikan sejumlah kecil perangkat (misalnya, hingga 10.000).
- Tidak memerlukan akun Azure Storage.
- Mengumpulkan string koneksi untuk perutean dan titik akhir pengunggahan file yang menggunakan autentikasi berbasis kunci dan menyertakannya dalam output templat ARM.
Hal-hal yang perlu dipertimbangkan
Ada beberapa hal yang perlu dipertimbangkan sebelum memigrasikan hub IoT.
Pastikan bahwa semua fitur yang tersedia di lokasi asli juga tersedia di lokasi baru. Beberapa layanan ada dalam pratinjau dan tidak semua fitur tersedia di mana saja.
Jangan hapus sumber daya asli sebelum membuat dan memverifikasi versi yang dimigrasikan. Setelah Anda menghapus hub, hub hilang selamanya, dan tidak ada cara untuk memulihkannya untuk memeriksa pengaturan atau data untuk memastikan hub direplikasi dengan benar.
Data untuk IoT hub asli tidak dimigrasikan. Data ini mencakup pesan perangkat, perintah cloud-to-device (C2D), dan informasi terkait pekerjaan seperti jadwal dan riwayat. Metrik dan hasil pencatatan juga tidak dimigrasikan.
Anda perlu menjadwalkan waktu henti untuk migrasi. Mengkloning perangkat ke hub baru membutuhkan waktu. Jika Anda menggunakan metode Impor/Ekspor, pengujian tolok ukur menunjukkan bahwa diperlukan waktu sekitar dua jam untuk memindahkan 500.000 perangkat, dan empat jam untuk memindahkan satu juta perangkat.
Anda dapat menyalin perangkat ke hub baru tanpa mematikan atau mengubah perangkat.
Jika perangkat awalnya disediakan menggunakan DPS, perbarui pendaftarannya untuk menunjuk ke hub IoT baru. Kemudian, provisi ulang perangkat untuk memperbarui informasi koneksi yang disimpan di setiap perangkat.
Jika tidak, Anda harus menggunakan metode impor/ekspor untuk memindahkan perangkat, lalu perangkat harus dimodifikasi untuk menggunakan hub baru. Misalnya, Anda dapat mengatur perangkat untuk menggunakan nama host IoT Hub dari properti kembar yang diinginkan. Perangkat mengambil nama host IoT Hub tersebut, memutuskan sambungan perangkat dari hub lama, dan menyambungkannya kembali ke yang baru.
Anda perlu memperbarui sertifikat apa pun sehingga Anda dapat menggunakannya dengan sumber daya baru. Selain itu, Anda mungkin memiliki hub yang ditentukan dalam tabel DNS di suatu tempat dan perlu memperbarui informasi DNS tersebut.
Titik akhir yang menggunakan identitas terkelola yang ditetapkan sistem untuk autentikasi tidak dapat dimigrasikan. Setelah migrasi, Anda perlu memberikan akses identitas terkelola hub IoT baru yang ditetapkan sistem ke sumber daya titik akhir lalu membuat ulang titik akhir.
Metodologi
Ini adalah metode umum yang kami rekomendasikan untuk memigrasikan hub IoT.
Ekspor hub dan pengaturannya ke templat Resource Manager.
Buat perubahan yang diperlukan pada templat, seperti memperbarui semua kemunculan nama dan lokasi untuk hub yang dimigrasikan. Untuk semua sumber daya dalam templat yang digunakan untuk titik akhir perutean pesan, perbarui kunci dalam templat untuk sumber daya tersebut.
Impor templat ke grup sumber daya baru di lokasi baru. Langkah ini membuat hub IoT baru.
Debug sesuai kebutuhan.
Tambahkan semua yang tidak diekspor ke templat.
Misalnya, grup konsumen tidak diekspor ke template. Anda perlu menambahkan grup konsumen ke templat secara manual atau menggunakan portal Microsoft Azure setelah hub dibuat.
Salin perangkat dari hub asli ke hub baru. Proses ini tercakup dalam bagian Mengelola perangkat yang terdaftar ke hub IoT.
Cara menangani perutean pesan
Jika hub Anda menggunakan perutean pesan, mengekspor templat untuk hub menyertakan konfigurasi perutean, tetapi tidak menyertakan sumber daya itu sendiri. Jika Anda memigrasikan hub IoT ke wilayah baru, Anda harus memilih apakah akan memindahkan sumber daya perutean ke lokasi baru juga atau membiarkannya di tempat dan terus menggunakannya apa adanya. Mungkin ada hit performa kecil dari pesan perutean ke sumber daya titik akhir di wilayah yang berbeda.
Jika hub menggunakan perutean pesan, Anda memiliki dua pilihan.
Pindahkan sumber daya yang digunakan untuk perutean titik akhir ke lokasi baru.
Buat sendiri sumber daya baru baik secara manual di portal Azure atau dengan menggunakan templat Resource Manager.
Ganti nama semua sumber daya saat Anda membuatnya di lokasi baru, karena memerlukan nama yang unik secara global.
Perbarui nama sumber daya dan kunci sumber daya di templat hub baru sebelum membuat hub baru. Sumber daya harus ada saat hub baru dibuat.
Jangan pindahkan sumber daya yang digunakan untuk titik akhir perutean. Gunakan di tempat.
Pada langkah saat Anda mengedit template, Anda perlu mengambil kunci untuk setiap sumber perutean dan meletakkannya di template sebelum Anda membuat hub baru.
Hub masih mereferensikan sumber daya perutean asli dan merutekan pesan kepada mereka sebagai dikonfigurasi. Anda akan mendapatkan sedikit penurunan performa karena hub dan sumber daya titik akhir perutean tidak berada di lokasi yang sama.
Bersiap untuk memigrasikan hub ke wilayah lain
Bagian ini menyediakan petunjuk khusus untuk memigrasikan hub.
Mengekspor hub asli ke templat sumber daya
Masuk ke portal Azure.
Navigasikan ke hub IoT yang ingin Anda pindahkan.
Pilih Ekspor templat dari daftar properti dan pengaturan untuk hub.
Pilih Unduh untuk mengunduh templat. Simpan file di lokasi yang dapat Anda temukan lagi.
Menampilkan templat
Buka templat yang diunduh, yang terkandung dalam file zip. Buka file zip dan temukan file yang disebut template.json
.
Contoh berikut adalah untuk hub generik tanpa konfigurasi perutean. Ini merupakan hub tingkat S1 (dengan 1 unit) yang disebut ContosoHub di wilayah 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": []
}
}
]
}
Mengedit templat
Anda harus membuat beberapa perubahan sebelum Anda dapat menggunakan templat untuk membuat hub baru di wilayah baru. Gunakan Visual Studio Code atau editor teks untuk mengedit templat.
Mengedit nama dan lokasi hub
Di bagian parameter , hapus ... connectionString dan ... parameter containerName .
"IotHubs_ContosoHub_connectionString": { "type": "SecureString" }, "IotHubs_ContosoHub_containerName": { "type": "SecureString" },
Di bagian properti , hapus properti storageEndpoints .
"storageEndpoints": { "$default": { "sasTtlAsIso8601": "PT1H", "connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]", "containerName": "[parameters('IotHubs_ContosoHub_containerName')]" } },
Jika Anda memindahkan hub ke wilayah baru, ubah properti lokasi di bawah sumber daya.
"location": "westus",
Memperbarui sumber daya titik akhir perutean
Saat Anda mengekspor templat Resource Manager untuk hub yang peruteannya dikonfigurasi, Anda akan melihat bahwa kunci untuk sumber daya tersebut tidak disediakan dalam templat yang diekspor. Penempatan kunci dilambangkan dengan tanda bintang. Anda harus mengisinya dengan masuk ke sumber daya tersebut di portal dan mengambil kunci sebelum Anda mengimpor templat hub baru dan membuat hub.
Jika Anda memindahkan sumber daya perutean juga, perbarui nama, ID, dan grup sumber daya dari setiap titik akhir juga.
- Untuk titik akhir dengan autentikasi berbasis kunci, ambil kunci yang diperlukan untuk salah satu sumber daya perutean dan letakkan di templat. Anda dapat mengambil kunci dari setiap sumber daya di portal Azure.
- Untuk titik akhir dengan autentikasi berbasis identitas:
- Mereka yang menggunakan identitas terkelola yang ditetapkan pengguna memiliki nilai userAssignedIdentity yang diisi dengan informasi ID identitas sebagai parameter.
- Mereka yang menggunakan identitas terkelola yang ditetapkan sistem tidak dapat dimigrasikan. Hapus titik akhir ini dan rute terkait dari templat dan buat catatan untuk membuatnya kembali di hub IoT baru.
Membuat hub baru dengan memuat templat
Buat hub baru menggunakan templat yang diedit. Jika Anda memiliki sumber daya perutean yang akan bergerak, sumber daya harus disiapkan di lokasi baru dan referensi dalam templat diperbarui agar cocok. Jika Anda tidak memindahkan sumber daya perutean, sumber daya tersebut harus berada di templat dengan kunci yang diperbarui.
Masuk ke portal Azure.
Pilih Buat sumber daya.
Dalam kotak pencarian, cari dan pilih penyebaran templat (sebarkan menggunakan templat kustom). Pada layar untuk penyebaran templat, pilih Buat.
Pada halaman Penyebaran kustom, pilih Bangun templat Anda sendiri di editor, yang memungkinkan Anda mengunggah templat Anda dari file.
Pilih Muat file.
Telusuri templat baru yang Anda edit dan pilih templat tersebut, lalu pilih Buka. Tindakan ini akan memuat templat di jendela edit. Pilih Simpan.
Isi bidang berikut pada halaman penyebaran kustom.
Langganan: pilih langganan yang akan digunakan.
Grup sumber daya: Pilih grup sumber daya yang sudah ada atau buat yang baru.
Wilayah: Jika Anda memilih grup sumber daya yang ada, wilayah diisi agar Anda dapat mencocokkan lokasinya ke grup sumber daya. Jika Anda membuat grup sumber daya baru, ini adalah lokasinya.
Nama hub: Beri nama hub baru.
Pilih tombol Tinjau + buat.
Pilih tombol Buat. Portal memvalidasi templat Anda dan menyebarkan hub baru Anda. Jika Anda memiliki data konfigurasi perutean, data tersebut disertakan di hub baru, tetapi menunjuk pada sumber daya di lokasi sebelumnya.
Mengelola perangkat yang terdaftar ke hub IoT
Sekarang setelah hub baru Anda aktif dan berjalan, Anda perlu menyalin semua perangkat dari hub asli ke yang baru.
Ada beberapa cara untuk menyalin perangkat. Anda awalnya menggunakan Device Provisioning Service (DPS) untuk menyediakan perangkat, atau tidak. Jika Anda melakukannya, proses ini tidak akan menjadi sulit. Jika tidak, proses ini dapat menjadi rumit.
Jika Anda tidak menggunakan DPS untuk menyediakan perangkat, Anda dapat melewati bagian berikutnya dan mulai menggunakan Gunakan Impor/Ekspor untuk memindahkan perangkat ke hub baru.
Menggunakan DPS untuk memprovisi ulang perangkat di hub baru
Untuk menggunakan DPS untuk memindahkan perangkat ke lokasi baru, lihat Cara menyediakan ulang perangkat. Setelah selesai, Anda dapat melihat perangkat di portal Microsoft Azure dan memverifikasi bahwa perangkat berada di lokasi baru.
Buka hub baru menggunakan portal Microsoft Azure. Pilih hub Anda, lalu pilih Perangkat IoT. Anda melihat perangkat yang diprovisikan ulang ke hub baru. Anda juga dapat melihat properti untuk hub baru.
Jika Anda telah menerapkan perutean, uji dan pastikan pesan dirutekan ke sumber daya dengan benar.
Gulung balik perubahan setelah menggunakan DPS
Jika Anda ingin mengembalikan perubahan, provisi ulang perangkat dari hub baru ke hub lama.
Anda sekarang selesai memigrasikan hub dan perangkatnya. Anda dapat melompat ke Pembersihan.
Gunakan impor-ekspor untuk memindahkan perangkat ke hub baru
Aplikasi ini menargetkan .NET Core, sehingga Anda dapat menjalankannya di Windows atau Linux. Anda dapat mengunduh sampel, mengambil string koneksi, mengatur bendera yang bitnya ingin Anda jalankan, dan menjalankannya. Anda dapat melakukan hal ini tanpa pernah membuka kode.
Unduh sampel
Gunakan ImportExportDevicesSample IoT C# SDK. Kloning atau unduh repositori untuk mendapatkan kode sampel.
Opsi
Untuk menjalankan aplikasi, tentukan tiga string koneksi dan lima opsi. Anda meneruskan data ini sebagai argumen baris perintah, menggunakan variabel lingkungan, atau menggunakan kombinasi keduanya. Kita akan meneruskan opsi sebagai argumen baris perintah dan string koneksi sebagai variabel lingkungan. Alasan tindakan ini adalah karena string koneksi panjang dan tidak terganggu, serta kemungkinan kecil akan berubah, tetapi Anda mungkin ingin mengubah opsi dan menjalankan aplikasi lebih dari sekali. Untuk mengubah nilai variabel lingkungan, Anda harus menutup jendela perintah dan Visual Studio atau Visual Studio Code, mana pun yang Anda gunakan.
Berikut adalah lima opsi yang Anda tentukan saat menjalankan aplikasi:
addDevices (argumen 1) - atur opsi ini ke
True
jika Anda ingin menambahkan perangkat virtual yang dihasilkan untuk Anda. Perangkat ini ditambahkan ke hub sumber. Selain itu, atur numToAdd (argumen 2) untuk menentukan berapa banyak perangkat yang ingin Anda tambahkan. Jumlah maksimum perangkat yang dapat Anda daftarkan ke hub adalah satu juta. Tujuan dari opsi ini adalah untuk pengujian. Anda dapat membuat sejumlah perangkat tertentu, lalu menyalinnya ke hub lain.copyDevices (argumen 3) - atur opsi ini ke untuk
True
menyalin perangkat dari satu hub ke hub lainnya.deleteSourceDevices (argumen 4) - atur opsi ini ke untuk
True
menghapus semua perangkat yang terdaftar ke hub sumber. Sebaiknya tunggu hingga Anda yakin bahwa semua perangkat ditransfer sebelum Anda menjalankannya. Setelah menghapus perangkat, Anda tidak dapat mengembalikannya.deleteDestDevices (argumen 5) - atur opsi ini ke untuk
True
menghapus semua perangkat yang terdaftar ke hub tujuan. Anda mungkin ingin melakukan ini jika Anda ingin menyalin perangkat lebih dari sekali.
Perintah dasarnya adalah dotnet run, yang memberi tahu .NET untuk membuat file csproj lokal dan kemudian menjalankannya. Anda menambahkan argumen baris perintah hingga akhir sebelum menjalankannya.
Baris perintah Anda terlihat seperti contoh berikut:
// 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
Menggunakan variabel lingkungan untuk string koneksi
Untuk menjalankan sampel, Anda memerlukan string koneksi ke hub IoT lama dan baru, serta ke akun penyimpanan yang dapat Anda gunakan untuk file kerja sementara. Kita akan menyimpan nilai untuk string koneksi ini dalam variabel lingkungan.
Untuk mendapatkan nilai string koneksi, masuk ke portal Microsoft Azure.
Letakkan string koneksi di lokasi yang dapat Anda jangkau, seperti NotePad. Jika Anda menyalin berikut ini, Anda dapat menempelkan string koneksi langsung di tempatnya. Jangan tambahkan spasi di sekitar tanda sama dengan atau mengubah nama variabel. Selain itu, Anda tidak perlu tanda kutip ganda di sekitar string koneksi. Jika Anda meletakkan tanda kutip di sekitar akun penyimpanan string koneksi, skrip gagal.
Atur variabel lingkungan di 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>
Atur variabel lingkungan di Linux:
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>"
Untuk string koneksi hub IoT, buka setiap hub di portal. Anda dapat mencari di Sumber Daya untuk hub. Jika Anda mengetahui Grup Sumber Daya, Anda dapat membuka Grup Sumber Daya, pilih grup sumber daya Anda, lalu pilih hub dari daftar aset dalam grup sumber daya tersebut.
Pilih Kebijakan akses bersama dari Pengaturan untuk hub, lalu pilih iothubowner dan salin salah satu string koneksi. Lakukan hal yang sama untuk hub tujuan. Tambahkan ke perintah SET yang sesuai.
Untuk string koneksi akun penyimpanan, temukan akun penyimpanan di Sumber Daya atau di Grup Sumber Daya lalu buka.
Di bagian Pengaturan, pilih Tombol akses dan salin salah satu string koneksi. Letakkan string koneksi dalam file teks Anda untuk perintah SET yang sesuai.
Kini Anda memiliki variabel lingkungan dalam file dengan perintah SET dan Anda tahu argumen baris perintah Anda. Mari kita jalankan sampelnya.
Jalankan aplikasi sampel dan gunakan argumen baris perintah
Buka jendela wantian perintah. Pilih Windows dan ketik
command prompt
untuk mendapatkan jendela wantian perintah.Salin perintah yang mengatur variabel lingkungan, satu per satu, dan tempelkan ke jendela wantian perintah, kemudian pilih Enter. Setelah selesai, ketik
SET
di jendela wantian perintah untuk melihat variabel lingkungan dan nilainya. Setelah menyalinnya ke jendela wantian perintah, Anda tidak perlu menyalinnya lagi, kecuali Anda membuka jendela wantian perintah baru.Di jendela wantian perintah, ubah direktori hingga Anda berada di ./ImportExportDevicesSample (lokasi file ImportExportDevicesSample.csproj). Kemudian ketik yang berikut ini dan sertakan argumen baris perintah Anda.
// Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices dotnet run arg1 arg2 arg3 arg4 arg5
Perintah dotnet membangun dan menjalankan aplikasi. Karena Anda meneruskan opsi saat menjalankan aplikasi, Anda dapat mengubah nilainya setiap kali menjalankan aplikasi. Misalnya, Anda mungkin ingin menjalankannya satu kali dan membuat perangkat baru, lalu menjalankannya lagi dan menyalin perangkat tersebut ke hub baru, dan sebagainya. Anda juga dapat melakukan semua langkah dalam proses yang sama, meskipun kami sarankan untuk tidak menghapus perangkat apa pun sampai Anda yakin telah selesai dengan migrasi. Berikut adalah contoh yang membuat 1.000 perangkat lalu menyalinnya ke hub lain.
// 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
Setelah Anda memverifikasi bahwa perangkat berhasil disalin, Anda dapat menghapus perangkat dari hub sumber seperti ini:
// 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
Menjalankan aplikasi sampel menggunakan Visual Studio
Jika Anda ingin menjalankan aplikasi di Visual Studio, ubah direktori Anda saat ini ke folder tempat file azureiot.sln berada. Kemudian, jalankan perintah ini di jendela wantian perintah untuk membuka solusi di Visual Studio. Anda harus melakukan ini di jendela perintah yang sama tempat Anda mengatur variabel lingkungan, sehingga variabel tersebut diketahui.
azureiot.sln
Klik kanan pada proyek ImportExportDevicesSample dan pilih Atur sebagai proyek startup.
Atur variabel di bagian atas Program.cs folder ImportExportDevicesSample untuk lima opsi.
// 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;
Pilih F5 untuk menjalankan aplikasi. Setelah selesai berjalan, Anda dapat melihat hasilnya.
Lihat hasilnya
Anda dapat melihat perangkat di portal Microsoft Azure dan memverifikasi bahwa perangkat berada di lokasi baru.
Buka hub baru menggunakan portal Microsoft Azure. Pilih hub Anda, lalu pilih Perangkat IoT. Anda melihat perangkat yang Anda salin dari hub lama ke hub baru. Anda juga dapat melihat properti untuk hub baru.
Periksa kesalahan impor/ekspor dengan masuk ke akun penyimpanan Azure di portal Microsoft Azure dan cari di kontainer
devicefiles
untukImportErrors.log
. Jika file ini kosong (ukurannya 0), maka tidak ada kesalahan. Jika Anda mencoba mengimpor perangkat yang sama lebih dari sekali, perangkat akan menolak perangkat untuk kedua kalinya dan menambahkan pesan kesalahan ke file log.
Menerapkan perubahan
Pada titik ini, Anda telah menyalin hub Anda ke lokasi baru dan memigrasikan perangkat ke hub baru. Sekarang Anda perlu membuat perubahan sehingga perangkat berfungsi dengan hub baru.
Untuk menerapkan perubahan, berikut adalah langkah-langkah yang perlu Anda lakukan:
Perbarui setiap perangkat untuk mengubah nama host IoT Hub untuk mengarahkan nama host IoT Hub ke hub baru. Anda harus melakukan ini menggunakan metode yang sama dengan yang Anda gunakan saat pertama kali memprovisikan perangkat.
Ubah aplikasi apa pun yang Anda miliki, yang merujuk ke hub lama untuk mengarahkan ke hub baru.
Setelah selesai, hub baru harus aktif dan berjalan. Hub lama seharusnya tidak memiliki perangkat aktif dan berada dalam keadaan terputus sambungannya.
Gulung balik perubahan
Jika Anda memutuskan untuk mengembalikan perubahan, berikut adalah langkah-langkah untuk melakukannya:
Perbarui setiap perangkat guna mengubah Nama Host IoT Hub untuk mengarah ke Nama Host IoT Hub untuk hub lama. Anda harus melakukan ini menggunakan metode yang sama dengan yang Anda gunakan saat pertama kali memprovisikan perangkat.
Ubah aplikasi apa pun yang Anda miliki, yang merujuk ke hub baru untuk mengarahkan ke hub lama. Misalnya, jika Anda menggunakan Azure Analytics, Anda mungkin perlu mengonfigurasi ulang input Azure Stream Analytics Anda.
Hapus hub baru.
Jika Anda memiliki sumber daya perutean, konfigurasi pada hub lama tetap harus menunjuk ke konfigurasi perutean yang benar, dan harus berfungsi dengan sumber daya tersebut setelah hub dimulai ulang.
Periksa hasilnya
Untuk memeriksa hasilnya, ubah solusi IoT Anda untuk mengarahkan ke hub di lokasi baru dan menjalankannya. Dengan kata lain, lakukan tindakan yang sama dengan hub baru yang Anda lakukan dengan hub sebelumnya, dan pastikan tindakan tersebut berfungsi dengan benar.
Jika Anda telah menerapkan perutean, uji dan pastikan pesan dirutekan ke sumber daya dengan benar.
Penghapusan
Jangan bersihkan sampai Anda yakin hub baru aktif dan berjalan dan perangkat berfungsi dengan benar. Pastikan juga untuk menguji perutean jika Anda menggunakan fitur tersebut. Saat Anda siap, bersihkan sumber daya lama dengan melakukan langkah-langkah berikut:
Jika Anda belum melakukannya, hapus hub lama. Tindakan ini akan menghapus semua perangkat aktif dari hub.
Jika Anda memiliki sumber daya perutean yang dipindahkan ke lokasi baru, Anda dapat menghapus sumber daya perutean lama.
Langkah berikutnya
Anda telah memigrasikan hub IoT ke hub baru di wilayah baru, lengkap dengan perangkat. Untuk informasi selengkapnya tentang melakukan operasi massal terhadap registri identitas di hub IoT, lihat Mengimpor dan mengekspor identitas perangkat IoT Hub secara massal.