準備
ここでは、プロジェクトの全体的な目標と、演習用のリソースを準備する方法について説明します。
プロジェクトの概要
このモジュールでは、まず、Device Provisioning Service (DPS) のインスタンスや IoT ハブなど、このモジュールを完了するために必要な Azure リソースを作成します。 次に Azure Cloud Shell 内で OpenSSL を使用して X.509 ルート CA 証明書を生成し、ルート証明書を使用して DPS 内でグループ登録を構成します。 その後、ルート証明書を使用して 2 つのデバイス証明書を生成します。これは、シミュレートされたデバイス コード内で IoT ハブにデバイスをプロビジョニングするために使用します。 デバイス コード内で、デバイスの初期構成を実行するために使用されるデバイス ツイン プロパティへのアクセスを実装します。 次に、シミュレートされたデバイスをテストします。 このモジュールを終了するには、グループ全体の登録をプロビジョニング解除します。
セットアップ
このモジュールの一部として、次のリソースが作成されます。
- Azure IoT ハブ
- Azure IoT Hub Device Provisioning Service インスタンス
- C# での 2 つのシミュレートされたデバイス
クラウド リソース
このガイド付きプロジェクトを完了するには、互いにリンクされている IoT ハブと Device Provisioning Service インスタンスが必要です。 これらのサービス インスタンスの作成には数分かかる場合があります。
まず、[サンドボックスをアクティブにする] ボタンをクリックします。 この Web ページに表示される Azure リソース グループがサンドボックスで自動的に作成されます。 次の手順を使用して、このプロジェクトのリソースをさらに作成します。 リソース グループ名は、コード ステップ内の使用されている場所で自動的に置き換えられます。
Note
サンドボックスの Azure Cloud Shell は、非アクティブ状態が 20 分続くとタイムアウトになります。 サンドボックスは引き続き使用でき、Cloud Shell を再アクティブ化できますが、コマンド ライン変数と環境変数は失われます。 IoT Hub と Device Provisioning Service のインスタンスは機能し、使用可能です。 これ以降の Cloud Shell コマンドで引き続き必要に応じて値を参照および入力できるように、このページの最後にある指示に従ってこれらの値をコピーしてください。
Azure CLI 用 Azure IoT 拡張機能をインストールします。
az extension add --name azure-iot
グローバルに一意である必要があるリソース名に使用する乱数を含む、suffix という名前の変数を作成します。
let suffix=$RANDOM*$RANDOM echo $suffix
Azure サンドボックスによって作成されたリソース グループ名に IoT ハブを作成します。
az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Azure サンドボックスによって作成されたリソース グループに DPS インスタンスを作成します。
az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
IoT ハブからハブ接続文字列を取得し、それを DPS インスタンスに提供して、2 つのリソースをリンクします。
hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv) echo $hubConnectionString
IoT ハブをリンクされたハブとして DPS インスタンスに追加します。 IoT ハブをリンクすることは、DPS インスタンスからその IoT ハブにデバイスをプロビジョニングできることを意味します。
az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
デプロイが完了したら、テキスト エディター ツールを開きます。 テキスト エディターを使用して、20 分後にサンドボックスがタイムアウトした場合に備えて、Azure リソースに関連付けられている構成値を保存します。 テキスト エディターで、次のユニット ページで使用する以下の名前と値を保存します。
名前 値 リソース グループ名 この Web ページに示されます 敬称 $suffix
に格納されます。 たとえば、$suffix
の値は586732230
です。IoT Hub 接続文字列 $hubConnectionString
に格納されますIoT Hub 名 hub-$suffix
。 たとえば、hub-586732230
のようにします。DPS 名 dps-$suffix
。 たとえば、dps-586732230
のようにします。DPS ID スコープ 手順 5 で実行した az iot dps create
コマンドから返された JSON データのidScope
の値。 たとえば、idScope
の値は0ne0000000
です。
開発リソース
Device Provisioning Service を使用して IoT デバイスのプロビジョニングをシミュレートするには、開発用コンピューターで 2 つの C# アプリケーションを実行します。 開発用コンピューターに次の前提条件を用意します。