準備

完了

ここでは、プロジェクトの全体的な目標と、演習用のリソースを準備する方法について説明します。

プロジェクトの概要

このモジュールでは、まず、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 インスタンスが必要です。 これらのサービス インスタンスの作成には数分かかる場合があります。

  1. まず、[サンドボックスをアクティブにする] ボタンをクリックします。 この Web ページに表示される Azure リソース グループがサンドボックスで自動的に作成されます。 次の手順を使用して、このプロジェクトのリソースをさらに作成します。 リソース グループ名は、コード ステップ内の使用されている場所で自動的に置き換えられます。

    Note

    サンドボックスの Azure Cloud Shell は、非アクティブ状態が 20 分続くとタイムアウトになります。 サンドボックスは引き続き使用でき、Cloud Shell を再アクティブ化できますが、コマンド ライン変数と環境変数は失われます。 IoT Hub と Device Provisioning Service のインスタンスは機能し、使用可能です。 これ以降の Cloud Shell コマンドで引き続き必要に応じて値を参照および入力できるように、このページの最後にある指示に従ってこれらの値をコピーしてください。

  2. Azure CLI 用 Azure IoT 拡張機能をインストールします。

    az extension add --name azure-iot
    
  3. グローバルに一意である必要があるリソース名に使用する乱数を含む、suffix という名前の変数を作成します。

    let suffix=$RANDOM*$RANDOM
    echo $suffix
    
  4. Azure サンドボックスによって作成されたリソース グループ名に IoT ハブを作成します。

    az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  5. Azure サンドボックスによって作成されたリソース グループに DPS インスタンスを作成します。

    az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  6. IoT ハブからハブ接続文字列を取得し、それを DPS インスタンスに提供して、2 つのリソースをリンクします。

    hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv)
    echo $hubConnectionString
    
  7. 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
    
  8. デプロイが完了したら、テキスト エディター ツールを開きます。 テキスト エディターを使用して、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# アプリケーションを実行します。 開発用コンピューターに次の前提条件を用意します。