Docker コンテナで AWS IoT Greengrass Core ソフトウェアを実行する - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Docker コンテナで AWS IoT Greengrass Core ソフトウェアを実行する

AWS IoT Greengrass は Docker コンテナで実行するように設定できます。Docker は、Linux コンテナに基づくアプリケーションの構築、実行、テスト、およびデプロイを行うためのツールを提供するプラットフォームです。AWS IoT Greengrass Docker イメージを実行する際、AWS 認証情報を Docker コンテナに提供し、AWS IoT Greengrass Core ソフトウェアインストーラが Greengrass コアデバイスの動作に必要な AWS リソースを自動的にプロビジョニングするかどうかを選択できます。AWS 認証情報を提供しない場合は、AWS リソースを手動でプロビジョニングし、Docker コンテナで AWS IoT Greengrass Core ソフトウェアを実行できます。

サポートされているプラットフォームと要件

ホストコンピュータは、Docker コンテナ内に AWS IoT Greengrass Core ソフトウェアをインストールして実行するために、次の最小要件を満たしている必要があります。

  • インターネットに接続された Linux ベースのオペレーティングシステム。

  • Docker Engine バージョン 18.09 以降。

  • (オプション) Docker Compose バージョン 1.22 以降。Docker Compose は、Docker Compose CLI を使用して Docker イメージを実行する場合のみ必要です。

Docker コンテナ内で Lambda 関数コンポーネントを実行するには、追加の要件を満たすようにコンテナを設定する必要があります。詳細については、「Lambda 関数の要件」を参照してください。

プロセスモードでコンポーネントを実行する

AWS IoT Greengrass は、AWS IoT Greengrass Docker コンテナ内の分離されたランタイム環境での Lambda 関数または AWS が提供するコンポーネントの実行をサポートしていません。これらのコンポーネントは、分離せずにプロセスモードで実行する必要があります。

Lambda 関数コンポーネントを設定するときは、分離モードを [No container] (コンテナなし) に設定します。詳細については、「AWS Lambda 関数を実行する」を参照してください。

次の AWS が提供するいずれかのコンポーネントをデプロイする場合,各コンポーネントの設定を更新して containerMode パラメータを NoContainer にします。設定の更新の詳細については、「コンポーネント設定の更新」を参照してください。

AWS IoT Greengrass Docker ソフトウェアダウンロード

AWS IoT Greengrass は、Amazon Linux 2 (x86_64) のベースイメージに AWS IoT Greengrass Core ソフトウェアと依存関係をインストールしたコンテナイメージを構築するための Dockerfile を提供します。異なるプラットフォームアーキテクチャで、Dockerfile のベースイメージを変更して AWS IoT Greengrass を実行することができます。

Dockerfile パッケージを、GitHub からダウンロードします。

Dockerfile は古いバージョンの Greengrass を使用しています。必要なバージョンの Greengrass を使用するようにファイルを更新する必要があります。Dockerfile から AWS IoT Greengrass コンテナイメージを構築する方法については、「Dockerfile から AWS IoT Greengrass コンテナイメージを構築する」を参照してください。

AWSリソースをプロビジョニングする方法を選択する

AWS IoT Greengrass Core ソフトウェアを Docker コンテナにインストールする際、Greengrass コアデバイスの動作に必要な AWS リソースを自動的にプロビジョニングするか、手動でプロビジョニングするリソースを使用するかを選択できます。

  • 自動リソースプロビジョニング - インストーラは、AWS IoT Greengrass コンテナイメージを初めて実行するときに、AWS IoT モノ、AWS IoT モノグループ、IAM ロール、および AWS IoT ロールエイリアスをプロビジョニングします。インストーラは、ローカル開発ツールをコアデバイスにデプロイすることもできるため、デバイスを使用してカスタムソフトウェアコンポーネントを開発とテストできます。これらのリソースを自動的にプロビジョニングするには、Docker イメージに環境変数として AWS 認証情報を提供する必要があります。

    自動プロビジョニングを使用するには、Docker 環境変数 PROVISION=true を設定し、認証ファイルをマウントして、AWS 認証情報をコンテナに提供する必要があります。

  • 手動のリソースのプロビジョニング - コンテナに AWS 認証情報を提供しない場合は、AWS IoT Greengrass コンテナイメージを実行する前に、AWS リソースを手動でプロビジョニングできます。これらのリソースに関する情報を Docker コンテナ内の AWS IoT Greengrass Core ソフトウェアインストーラに提供するための設定ファイルを作成する必要があります。

    手動プロビジョニングを使用するには、Docker 環境変数 PROVISION=false を設定する必要があります。手動プロビジョニングがデフォルトのオプションです。

詳細については、「Dockerfile から AWS IoT Greengrass コンテナイメージを構築する」を参照してください。