次の方法で共有


IoT Edge用の開発環境とテスト環境を準備する

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

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。

IoT Edgeは、既存のビジネス ロジックをエッジで動作するデバイスに移動します。 アプリケーションとワークロードを IoT Edge モジュールとして実行するように準備するには、それらをコンテナーとしてビルドする必要があります。 この記事では、IoT Edge ソリューションを正常に作成できるように開発環境を構成する方法に関するガイダンスを提供します。 開発環境を設定したら、独自のIoT Edge モジュールを<>開発する方法を学習できます。

IoT Edgeソリューションでは、IoT Edge モジュールを実行する IoT Edge デバイス (またはデバイス) と、モジュールをビルド、テスト、デプロイする開発マシンの少なくとも 2 つのマシンを検討してください。 この記事では主に、開発用マシンについて説明します。 テスト目的の場合は、これらの 2 台のマシンを同じマシンにすることができます。 開発用コンピューターでIoT Edgeを実行し、モジュールをデプロイできます。

オペレーティング システム

IoT Edgeは、サポートされているオペレーティング システムの特定のセットで実行されます。 IoT Edge用に開発するときは、コンテナー エンジンを実行できるほとんどのオペレーティング システムを使用できます。 コンテナーとしてモジュールをビルドし、コンテナー レジストリにプッシュするために、コンテナー エンジンが開発用マシンで必要になります。

開発用コンピューターでIoT Edgeを実行できない場合は、この記事の「Testing tools」セクションに進み、ローカルでテストおよびデバッグする方法について説明します。

開発用コンピューターとIoT Edgeデバイスのオペレーティング システムは一致する必要はありません。 ただし、コンテナー オペレーティング システムは、開発用コンピューターと IoT Edge デバイスの間で一貫している必要があります。 たとえば、Windows コンピューターでモジュールを開発し、Linux デバイスにデプロイできます。 Windows マシンは Linux コンテナーを実行して、Linux デバイス用のモジュールをビルドする必要があります。

コンテナー エンジン

IoT Edgeの中心的な概念は、ビジネス ロジックとクラウド ロジックをコンテナーにパッケージ化することで、デバイスにリモートでデプロイできることです。 コンテナーをビルドするには、開発用マシンでコンテナー エンジンが必要になります。

Docker などの Open Container Initiative と互換性のあるコンテナー エンジンは、モジュール イメージIoT Edge構築できます。 Moby は、運用環境のIoT Edgeデバイスでサポートされているコンテナー エンジンです。 Ubuntu Core スナップを使用している場合、Canonical は Docker スナップをサービスし、運用環境のシナリオでサポートします。

開発ツール

Azure IoT Edge開発ツールは、IoT Edgeモジュールを開発およびテストするためのコマンド ライン ツールです。 新しいIoT Edgeシナリオの作成、モジュール イメージの構築、シミュレーターでのモジュールの実行、IoT Hubに送信されたメッセージの監視を行うことができます。 iotedgedev ツールは、IoT Edge モジュールを開発するための推奨ツールです。

Visual StudioとVisual Studio Codeの両方に、IoT Edge ソリューションの開発に役立つアドオン拡張機能があります。 これらの拡張機能は、新しいIoT Edgeシナリオの作成とデプロイに役立つ言語固有のテンプレートを提供します。 Visual StudioとVisual Studio CodeのAzure IoT Edge拡張機能は、IoT Edge ソリューションのコーディング、ビルド、デプロイ、デバッグに役立ちます。 複数のモジュールを含むIoT Edge ソリューション全体を作成できます。拡張機能は、新しいモジュールを追加するたびに配置マニフェスト テンプレートを自動的に更新します。 拡張機能を使用すると、Visual StudioまたはVisual Studio Code内から IoT デバイスを管理することもできます。 モジュールをデバイスにデプロイし、状態を監視し、IoT Hubに到着したメッセージを表示できます。 最後に、どちらの拡張機能も IoT EdgeHub Dev Tool を使用して、開発マシン上のモジュールのローカル実行とデバッグを有効にします。

IoT Edge 開発ツール

Azure IoT Edge開発ツールは、コマンドライン機能を使用してIoT Edge開発を簡略化します。 このツールは、モジュールの開発、デバッグ、テストを行うための CLI コマンドを提供します。 IoT Edge開発ツールは、コンピューターに依存関係を手動でインストールした場合でも、事前構築済みの IoT Edge Dev Container を使用してコンテナーで iotedgedev ツールを実行する場合でも、開発システムで動作します。

詳細と作業を開始するには、IoT Edge Dev Tool wiki を参照してください。

Visual Studio Code拡張機能

Visual Studio CodeのAzure IoT Edge拡張機能には、C、C#、Java、Node.js、Pythonなどのプログラミング言語に基づいて構築されたIoT Edgeモジュール テンプレートが用意されています。 C# のAzure関数のテンプレートも含まれています。

重要

Azure IoT Edge Visual Studio Code 拡張機能は、メンテナンスモードです。 iotedgedev ツールは、IoT Edge モジュールを開発するための推奨ツールです。

詳細とダウンロードについては、Visual Studio Code 用 Azure IoT Edge を参照してください。

IoT Edge拡張機能に加えて、開発用の他の拡張機能をインストールすると役立つ場合があります。 たとえば、Docker for Visual Studio Code を使用して、イメージ、コンテナー、レジストリを管理できます。 さらに、サポートされているすべての主要な言語には、モジュールの開発時に役立つVisual Studio Codeの拡張機能があります。

Azure IoT Hub 拡張機能は、Azure IoT Edge拡張機能のコンパニオンとして役立ちます。

Visual Studio 2019/2022 拡張機能

Visual Studio用のAzure IoT Edge ツールには、C# と C に基づいて構築されたIoT Edge モジュール テンプレートが用意されています。

重要

Azure IoT Edge Visual Studio拡張機能はメンテナンス モードであり、Visual Studio Marketplace では使用できなくなりました。 iotedgedev ツールは、IoT Edge モジュールを開発するための推奨ツールです。

テスト ツール

IoT Edgeデバイスをシミュレートしたり、モジュールをより効率的にデバッグしたりするのに役立ついくつかのテスト ツールが存在します。 次の表は、ツール間の大まかな比較を示しています。 次の個々のセクションでは、各ツールについてより具体的に説明します。

IoT Edge ランタイムのみが運用環境のデプロイをサポートしますが、次のツールは開発とテストをサポートします。 これらのツールを使用して、IoT Edge デバイスをシミュレートまたは簡単に作成します。 これらのツールは、相互に排他的ではなく、完全な開発エクスペリエンスを実現するために連携させることができます。

ツール 別名 サポートされているプラットフォーム 最適な用途
IoT EdgeHub Dev Tool iotedgehubdev Windows、Linux、macOS モジュールをデバッグするためのデバイスのシミュレート。
IoT Edge デベロップメント コンテナー iotedgedev Windows、Linux、macOS 依存関係をインストールせずに開発。

IoT EdgeHub Dev Tool

Azure IoT EdgeHub Dev Tool は、ローカル開発とデバッグエクスペリエンスを提供します。 このツールは、IoT Edge ランタイムなしでモジュールIoT Edge開始するのに役立ちます。これにより、IoT Edgeモジュールとソリューションをローカルで作成、開発、テスト、実行、デバッグできます。 テストするために、イメージをコンテナー レジストリにプッシュしたり、それらをデバイスに配置したりする必要はありません。

IoT EdgeHub Dev Tool は、Visual Studio拡張機能とVisual Studio Code拡張機能、および IoT Edge Dev Tool と連携します。 開発ツールは内部ループ開発と外部ループ テストをサポートしているため、他の DevOps ツールとも統合されます。

重要

IoT EdgeHub Dev Tool は、メンテナンス モードです。 IoT Edge ランタイムがインストールされた Linux 仮想マシン、物理デバイス、または EFLOW の使用を検討してください。

詳細とインストールについては、Azure IoT EdgeHub Dev Tool を参照してください。

IoT Edge Dev コンテナー

Azure IoT Edge開発コンテナーは、IoT Edge開発に必要なすべての依存関係を持つ Docker コンテナーです。 このコンテナーを使用すると、C#、Python、Node.js、Javaなど、開発する言語を簡単に使い始めることができます。 インストールする必要があるのは、開発用マシンにコンテナーをプルするための Docker や Moby などのコンテナー エンジンだけです。

詳細については、「Azure IoT Edge Dev Container」を参照してください。

DevOps ツール

広範囲に及ぶ運用環境シナリオのために規模の大きいソリューションを開発する準備が整ったら、自動化、監視、合理化されたソフトウェア エンジニアリング プロセスなど、最新の DevOps 原則のメリットを生かすことができます。 IoT Edgeには、Azure DevOps、Azure DevOps Projects、Jenkins などの DevOps ツールをサポートするための拡張機能があります。 既存のパイプラインをカスタマイズする場合、または CircleCI や TravisCI などの別の DevOps ツールを使用する場合は、IoT Edge開発ツールに含まれている CLI 機能を使用します。

次のステップ