デバイス 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 開発サポートチーム 石沢 望夢


Skip to main content