デバイス ID のエクスポートとインポート

皆様 IoT Hub とは友達になれましたでしょうか、Azure IoT 開発サポートの石沢です。

今回はデバイス ID のエクスポートとインポートについてご紹介いたします。

デバイス ID が増えてきて、まとめて操作したくなった時に便利な操作になります。

手順一覧

デバイス ID のエクスポートとインポートは以下の 2 つの手順にて行います。

    1. デバイス ID をエクスポートする Blob の用意
    2. プログラムによるエクスポートとインポートの実行

各手順の詳細

1. デバイス ID をエクスポートする Blob の用意

リソースの作成より、ストレージアカウントを作成します。 clip_image001

作成時に [アカウントの種類] は BLOB ストレージを選択します。作成時に入力したストレージアカウント名は後で使用するのでメモしておきます。 clip_image002

[BLOB の参照] より、作成した BLOB にコンテナーを追加します。“名前” 欄に入力したコンテナー名も後で使用するのでメモしておきます。 clip_image003

[Shared Access Signatures] より Shared Access Signature (SAS) を生成します。生成された SAS トークンをメモしておきます。 clip_image004

2. プログラムによるエクスポートおよびインポートの実行

RegistryManager クラスを使用した以下のサンプルコードを実行します。

<エクスポート元の IoTHub 接続名>、<エクスポート先の IoTHub 接続名> につきましては、IoT Hub の接続名に置き換えてください。

また、<ストレージアカウント名>、<コンテナー名>、<セキュリティトークン> はそれぞれ BLOB 作成時にメモした値に置き換えてください。

エクスポート用サンプルコード :

var registryManager1 = RegistryManager.CreateFromConnectionString("<エクスポート元の IoTHub 接続名>");JobProperties exportJob = await registryManager1.ExportDevicesAsync("https://<ストレージアカウント名>.blog.core.windows.net/<コンテナー名><SAS トークン>", false);while (true){    exportJob = await registryManager.GetJobAsync(exportJob.JobId);    if (exportJob.Status == JobStatus.Completed ||        exportJob.Status == JobStatus.Failed ||        exportJob.Status == JobStatus.Cancelled)    {        break;    }    await Task.Delay(TimeSpan.FromSeconds(5));}

 

 

インポート用サンプルコード :

var registryManager2 = RegistryManager.CreateFromConnectionString("<エクスポート先の IoTHub 接続名>");JobProperties importJob = await registryManager2.ImportDevicesAsync("https://<ストレージアカウント名>.blog.core.windows.net/<コンテナー名><SAS トークン>", "https://<ストレージアカウント名>.blog.core.windows.net/<コンテナー名><SAS トークン>");while (true){    importJob = await registryManager2.GetJobAsync(importJob.JobId);    if (importJob.Status == JobStatus.Completed ||        importJob.Status == JobStatus.Failed ||        importJob.Status == JobStatus.Cancelled)    {        break;    }    await Task.Delay(TimeSpan.FromSeconds(5));}

 

 

エクスポートが完了すると、作成したコンテナーにエクスポートしたデバイス ID の情報が保存された devices.txt が格納されます。

また、インポートが完了すると importErrors.log が格納されます。 clip_image001[3]

インポート先の IoT Hub にデバイス ID が登録されていれば成功となります。

 

ではまた、いつかどこかでお会いいたしましょう!

Azure IoT 開発サポートチーム 石沢 望夢