次の方法で共有


Azure CLI を使用して Azure IoT Edge モジュールをデプロイする

適用対象:IoT Edge 1.5 のチェックマーク IoT Edge 1.5

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日をもってサポートが終了しています。 以前のリリースの場合は、「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 ハブ

  • 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 フォルダー内の ファイルを使用し、deployment.template.json ファイルは使用しません。

次のコマンドを使用して、IoT Edge デバイスに構成を適用します。

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

device ID パラメーターでは大文字と小文字が区別されます。 content パラメーターは、保存した配置マニフェスト ファイルを指します。

az iot edge set-modules コマンド ライン出力を示すスクリーンショット。

デバイス上のモジュールを表示する

モジュールをデバイスにデプロイした後で、そのすべてを次のコマンドで表示できます。

IoT Edge デバイス上のモジュールを参照します。

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

device ID パラメーターでは大文字と小文字が区別されます。

az iot hub module-identity list コマンド出力を示すスクリーンショット。

次のステップ

大規模な IoT Edge モジュールの展開と監視の方法を学習します