適用対象: IoT Edge 1.1
重要
IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 この製品、サービス、テクノロジ、または API がどのようにサポートされているかについては、 Microsoft 製品ライフサイクル を確認してください。 最新バージョンの IoT Edge への更新の詳細については、「 IoT Edge の更新」を参照してください。
この記事では、対称キーを使用して 1 つ以上の Windows IoT Edge デバイスを自動プロビジョニングするためのエンド ツー エンドの手順について説明します。 Azure IoT Hub デバイス プロビジョニング サービス (DPS) を使用して 、Azure IoT Edge デバイスを 自動的にプロビジョニングできます。 自動プロビジョニングのプロセスに慣れていない場合は、続行する前にプロビジョニングの 概要を 確認してください。
注
Windows コンテナーを含む Azure IoT Edge は、Azure IoT Edge のバージョン 1.2 以降ではサポートされません。
Windows デバイスで IoT Edge を実行するための新しい方法、Windows 上の Azure IoT Edge for Linux の使用を検討してください。
Azure IoT Edge for Linux on Windows を使用する場合は、 同等のハウツー ガイドの手順に従うことができます。
タスクは次のとおりです。
- 1 つのデバイスに対して 個別 登録を作成するか、一連のデバイスの グループ登録 を作成します。
- IoT Edge ランタイムをインストールし、IoT Hub に接続する。
対称キーの構成証明は、デバイス プロビジョニング サービス インスタンスを使用してデバイスを認証する簡単なアプローチです。 この構成証明の方法では、初めてデバイスのプロビジョニングを行う開発者または厳密なセキュリティ要件がない開発者に対して、"Hello world" エクスペリエンスを提示します。 TPM または X.509 証明書を使用したデバイス構成証明の安全性が高く、より厳格なセキュリティ要件に使用する必要があります。
[前提条件]
クラウド リソース
- アクティブな IoT ハブ
- 自分の IoT ハブにリンクされた、Azure 内の IoT Hub デバイス プロビジョニング サービスのインスタンス
- デバイス プロビジョニング サービス インスタンスがない場合は、IoT Hub デバイス プロビジョニング サービスのクイック スタートの「 新しい IoT Hub デバイス プロビジョニング サービスの作成 」および 「IoT Hub とデバイス プロビジョニング サービスのリンク 」セクションの手順に従うことができます。
- デバイス プロビジョニング サービスを実行したら、概要ページから ID スコープ の値をコピーします。 この値は、IoT Edge ランタイムを構成するときに使用します。
デバイスの要件
IoT Edge デバイスとなる物理または仮想 Windows デバイス。
各デバイスを識別するには、一意の登録 ID を定義する必要があります。 デバイスの MAC アドレス、シリアル番号、または何らかの固有の情報を使用できます。 この例では、MAC アドレスとシリアル番号の組み合わせを使用して、次のような登録 ID の文字列を形成します: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
。 有効な文字は、小文字の英字、数字、ダッシュ (-
) です。
DPS の登録を作成する
DPS を介して 1 つ以上のデバイスをプロビジョニングする登録を作成します。
1 つの IoT Edge デバイスをプロビジョニングする場合は、 個別の登録を作成します。 複数のデバイスをプロビジョニングする必要がある場合は、DPS グループ登録を作成する手順に従います。
DPS で登録を作成するときは、 デバイス ツインの初期状態を宣言する機会があります。 デバイス ツインでは、ソリューションで必要な任意のメトリック (リージョン、環境、場所、デバイスの種類など) によってデバイスをグループ化するためのタグを設定できます。 これらのタグは、 自動デプロイを作成するために使用されます。
デバイス プロビジョニング サービスの登録の詳細については、「デバイスの 登録を管理する方法」を参照してください。
DPS 個別登録を作成する
ヒント
この記事の手順は Azure portal 向けですが、Azure CLI を使用して個別登録を作成することもできます。 詳細については、 az iot dps の登録に関するページを参照してください。 CLI コマンドの一部として、 エッジ対応 フラグを使用して、登録が IoT Edge デバイス用であることを指定します。
Azure portal で、IoT Hub デバイス プロビジョニング サービスのインスタンスに移動します。
[ 設定] で、[ 登録の管理] を選択します。
[ 個々の登録の追加] を選択し、次の手順を実行して登録を構成します。
[ メカニズム] で、[ 対称キー] を選択します。
デバイスの一意の 登録 ID を 指定します。
必要に応じて、 デバイスの IoT Hub デバイス ID を 指定します。 デバイス ID を使用して、個々のデバイスをモジュール展開のターゲットにすることができます。 デバイス ID を指定しなかった場合は、登録 ID が使用されます。
登録が IoT Edge デバイス用であることを宣言するには 、[True] を 選択します。
必要に応じて、 初期デバイス ツイン状態にタグ値を追加します。 タグを使用して、デバイス グループをモジュール展開のターゲットにすることができます。 例えば次が挙げられます。
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
[保存] を選択します。
IoT Edge ランタイムをインストールするときに使用する個々の登録の 主キー の値をコピーします。
これで、このデバイスの登録が存在しているので、IoT Edge ランタイムによってインストール時にデバイスを自動的にプロビジョニングできます。
IoT Edge をインストールする
このセクションでは、IoT Edge 用に Windows VM または物理デバイスを準備します。 次に、IoT Edge をインストールします。
Azure IoT Edgeは、OCI と互換性のあるコンテナー ランタイムに依存しています。 Moby ベースのエンジンである Moby はインストール スクリプトに含まれています。つまり、エンジンをインストールするための追加の手順はありません。
IoT Edge ランタイムをインストールするには:
PowerShell を管理者として実行します。
PowerShell (x86) ではなく、PowerShell の AMD64 セッションを使用します。 使用しているセッションの種類がわからない場合は、次のコマンドを実行します。
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
次のタスクを実行する Deploy-IoTEdge コマンドを実行します。
- Windows マシンがサポートされているバージョンにあることを確認します
- コンテナー機能を有効にする
- moby エンジンと IoT Edge ランタイムをダウンロードします
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
メッセージが表示されたら、デバイスを再起動します。
IoT Edge をデバイスにインストールする場合は、追加のパラメーターを使用して、次のようなプロセスを変更できます。
- プロキシ サーバーを経由するトラフィックを直接送信する
- オフライン インストール用のローカル ディレクトリにインストーラーをポイントする
これらの追加パラメーターの詳細については、「 Windows コンテナーを使用した IoT Edge 用の PowerShell スクリプト」を参照してください。
クラウド ID を使用してデバイスをプロビジョニングする
ランタイムがデバイスにインストールされたら、デバイス プロビジョニング サービスと IoT Hub に接続するための情報を使用してデバイスを構成します。
次の情報を用意しておきます。
- DPS ID スコープ の値
- あなたが作成したデバイス登録 ID
- 個々の登録の 主キー 、またはグループ登録を使用するデバイスの 派生キー 。
管理者モードで PowerShell ウィンドウを開きます。 PowerShell (x86) ではなく、IoT Edge をインストールするときは、必ず PowerShell の AMD64 セッションを使用してください。
Initialize-IoTEdge コマンドは、コンピューター上の IoT Edge ランタイムを構成します。 このコマンドは既定で Windows コンテナーを使用した手動プロビジョニングであるため、対称キー認証で自動プロビジョニングを使用するには、
-DpsSymmetricKey
フラグを使用します。paste_scope_id_here
、paste_registration_id_here
、paste_symmetric_key_here
のプレースホルダーの値を、前に収集したデータに置き換えます。. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -DpsSymmetricKey -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here -SymmetricKey paste_symmetric key_here
インストールの成功を確認する
ランタイムが正常に起動されたら、IoT Hub にアクセスし、デバイスに IoT Edge モジュールを展開できます。
デバイス プロビジョニング サービスで作成した個々の登録が使用されたことを確認できます。 Azure portal でデバイス プロビジョニング サービス インスタンスに移動します。 作成した個々の登録の詳細を開きます。 登録の状態が 割り当てられ 、デバイス ID が一覧表示されていることに注意してください。
IoT Edge が正常にインストールされ、起動されたことを確認するには、デバイスで次のコマンドを使用します。
IoT Edge サービスの状態を確認します。
Get-Service iotedge
サービス ログを調べます。
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
実行中のモジュールを一覧表示します。
iotedge list
次のステップ
デバイス プロビジョニング サービスの登録プロセスでは、新しいデバイスをプロビジョニングするときに、デバイス ID とデバイス ツイン タグを同時に設定できます。 これらの値を使用して、個々のデバイスやデバイス グループを、自動デバイス管理によりターゲットできます。 Azure portal または Azure CLI を使用して、大規模な IoT Edge モジュールをデプロイして監視する方法について説明します。