対象:
IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。
ビジネス ロジックを使用してAzure IoT Edge モジュールを作成したら、それらをデバイスにデプロイしてエッジで動作します。 複数のモジュールが連携してデータを収集して処理する場合は、それらをすべて一度にデプロイします。 それらを接続するルーティング規則も宣言します。
Azure CLI は、IoT EdgeなどのAzureリソースを管理するためのオープンソースのクロスプラットフォーム コマンドライン ツールです。 Azure IoT Hubリソース、デバイス プロビジョニング サービス インスタンス、およびリンクされたハブをすぐに管理できます。 新しい IoT 拡張機能は、デバイス管理や完全なIoT Edge機能などの機能を使用してAzure CLIを強化します。
この記事では、JSON 配置マニフェストを作成し、そのファイルを使用してデプロイをIoT Edge デバイスにプッシュする方法について説明します。 共有タグに基づいて複数のデバイスを対象とするデプロイを作成する方法については、「大規模なIoT Edge モジュールのデプロイと監視を参照してください。
前提条件
Azure サブスクリプションの IoT Hub。
IoT Edge デバイス
IoT Edge デバイスを設定していない場合は、Azure仮想マシンにデバイスを作成します。 クイック スタート記事のいずれかの手順に従って、仮想 Linux デバイスを作成または仮想 Windows デバイスを作成します。
環境内にAzure CLIを設定する。 Azure CLIバージョンは 2.0.70 以降である必要があります。
az --versionを使用して確認します。 このバージョンでは、az extension コマンドがサポートされ、Knack コマンド フレームワークが使用されます。Azure CLI の IoT 拡張機能
配置マニフェストを構成する
配置マニフェストは、デプロイするモジュール、モジュール間でのデータ フロー、およびモジュール ツインの目的のプロパティを記述した JSON ドキュメントです。 配置マニフェストの動作と作成方法の詳細については、「IoT Edge モジュールを使用、構成、および再利用する方法を理解するを参照してください。
Azure CLIを使用してモジュールをデプロイするには、配置マニフェストを .json ファイルとしてローカルに保存します。 次のセクションのファイル パスを使用してコマンドを実行し、デバイスに構成を適用します。
1 つのモジュールを例として使用した基本的な配置マニフェストを次に示します。
注
このサンプル 配置マニフェストでは、IoT Edge エージェントとハブにスキーマ バージョン 1.1 を使用します。 スキーマ バージョン 1.1 は IoT Edge バージョン 1.0.10 に含まれており、モジュールの起動順序やルートの優先順位付けなどの機能を有効にします。
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
デバイスにデプロイする
モジュールをデバイスにデプロイするには、モジュール情報で構成されている配置マニフェストを適用します。
デプロイ マニフェストを保存したフォルダーにディレクトリを変更します。 Visual Studio Code IoT Edge テンプレートのいずれかを使用した場合は、deployment.json ファイルではなく、ソリューション ディレクトリの config フォルダーにある deployment.json ファイルを使用します。
IoT Edge デバイスに構成を適用するには、次のコマンドを使用します。
az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]
device ID パラメーターでは大文字と小文字が区別されます。 content パラメーターは、保存した配置マニフェスト ファイルを指します。
デバイス上のモジュールを表示する
モジュールをデバイスにデプロイした後で、そのすべてを次のコマンドで表示できます。
IoT Edge デバイス上のモジュールを表示します。
az iot hub module-identity list --device-id [device id] --hub-name [hub name]
device ID パラメーターでは大文字と小文字が区別されます。