Docker コンテナでの AWS IoT Greengrass の実行 - AWS IoT Greengrass

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Docker コンテナでの AWS IoT Greengrass の実行

AWS IoT Greengrass は Docker コンテナで実行するように設定できます。

AWS IoT Greengrass Core ソフトウェアと依存関係がインストールされている Amazon CloudFront から、Dockerfile をダウンロードできます。Docker イメージを変更してさまざまなプラットフォームアーキテクチャで実行するか、Docker イメージのサイズを小さくするには、Docker パッケージダウンロードの README ファイルを参照してください。

AWS IoT Greengrass の試用を開始しやすいように、AWS には、AWS IoT Greengrass Core ソフトウェアと依存関係がインストールされた Docker イメージもすでに構築されています。イメージは、Docker Hub または Amazon Elastic Container Registry (Amazon ECR) からダウンロードできます。これらの構築済みのイメージでは、Amazon Linux 2 (x86_64) および Alpine Linux (x86_64、Armv7l、または AArch64) のベースイメージを使用します。

このトピックでは、latest AWS IoT Greengrass Docker イメージを Amazon ECR からダウンロードして Windows、macOS、または Linux (x86_64) プラットフォームで実行する方法について説明します。以下の各ステップを示します。

Docker コンテナで AWS IoT Greengrass を実行する場合、次の機能はサポートされません。

  • コネクタ 導入されている グリーングラス容器 モード。Docker コンテナでコネクタを実行するには、コネクタをコンテナなしモードで実行する必要があります。コンテナなしモードをサポートするコネクタを検索するには、「AWS が提供する Greengrass コネクタ」を参照してください。これらのコネクタの一部では、分離モードパラメータを使用されており、[コンテナなし] に設定する必要があります。

  • ローカルデバイスおよびボリュームリソース。Docker コンテナで実行されるユーザー定義 Lambda 関数は、コア上のデバイスとボリュームに直接アクセスする必要があります。

Greengrass グループの Lambda ランタイム環境が、Docker コンテナで AWS IoT Greengrass を実行するのに必要な [No container (コンテナなし)] に設定されている場合、これらの機能はサポートされていません。

Prerequisites

このチュートリアルを開始する前に、以下を実行する必要があります。

  • 次のソフトウェアとバージョンをホストコンピュータにインストールする必要があります。 AWS Command Line Interface (AWS CLI)バージョンを選択します。

    AWS CLI version 2
    • Docker、バージョン 18.09 以降。旧バージョンも機能する可能性がありますが、18.09以降をお勧めします。

    • AWS CLI バージョン2.0.0以降。

      注記

      後で にアップグレードするには AWS CLI Windowsコンピュータのバージョン2では、 MSI インストール プロセス。

    AWS CLI version 1
    • Docker、バージョン 18.09 以降。旧バージョンも機能する可能性がありますが、18.09以降をお勧めします。

    • Python、バージョン 3.6 以降。

    • pip バージョン 18.1 以降。

    • AWS CLI バージョン1.17.10以降

      • をインストールするには AWS CLI バージョン1、を参照 のインストール AWS CLI バージョン1.

      • 構成するには AWS CLI、を参照 の設定 AWS CLI.

      • AWS CLI バージョン 1 の最新バージョンにアップグレードするには、次のコマンドを実行します。

        pip install awscli --upgrade --user
      注記

      _を使用する場合 MSI インストール の AWS CLI Windowsのバージョン1では、次のことに注意してください。

      • _が AWS CLI バージョン1のインストールでbotocoreのインストールに失敗しました。 Pythonとpipのインストール.

      • 後で にアップグレードするには AWS CLI MSI インストール プロセスを繰り返す必要があります。

  • アクセスするには Amazon Elastic Container Registry (Amazon ECR)リソースを使用する場合は、以下の許可を与える必要があります。

ステップ 1. Amazon ECR から AWS IoT Greengrass コンテナイメージを取得する

AWS には AWS IoT Greengrass Core ソフトウェアがインストールされた Docker イメージが用意されています。の引き方を示すステップについては、 latest イメージ元 Amazon ECR、 オペレーティングシステムを選択します。

コンピュータのターミナルで以下のコマンドを実行します。

  1. Amazon ECR で AWS IoT Greengrass レジストリにログインします。

    aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin https://216483018798.dkr.ecr.us-west-2.amazonaws.com

    成功すると、Login Succeeded が出力されます。

  2. AWS IoT Greengrass コンテナイメージを取得します。

    docker pull 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
    注記

    latest イメージには、Amazon Linux 2 ベースイメージにインストールされた最新の安定バージョンの AWS IoT Greengrass Core ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。利用可能なすべての画像を検索するには、 タグ ページ ドッカーハブ または aws ecr list-images コマンド。以下に例を示します。

    aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
  3. シンボリックリンクとハードリンクの保護を有効にします。コンテナでの AWS IoT Greengrass の実行を試用している場合は、現在のブートに対してのみ設定を有効にできます。

    注記

    これらのコマンドを実行するには、sudo を使用することが必要な場合があります。

    • 現在のブートに対してのみ設定を有効にするには、以下のコマンドを使用します。

      echo 1 > /proc/sys/fs/protected_hardlinks echo 1 > /proc/sys/fs/protected_symlinks
    • 再起動しても維持される設定を有効にするには、以下のコマンドを使用します。

      echo '# AWS Greengrass' >> /etc/sysctl.conf echo 'fs.protected_hardlinks = 1' >> /etc/sysctl.conf echo 'fs.protected_symlinks = 1' >> /etc/sysctl.conf sysctl -p
  4. IPv4 ネットワーク転送を有効にします。これは、AWS IoT Greengrass クラウドデプロイと MQTT 通信が Linux で機能するために必要です。/etc/sysctl.conf ファイルで、net.ipv4.ip_forward を 1 に設定して、sysctls を再ロードします。

    sudo nano /etc/sysctl.conf # set this net.ipv4.ip_forward = 1 sudo sysctl -p
    注記

    nano の代わりに任意のエディタを使用できます。

コンピュータのターミナルで以下のコマンドを実行します。

  1. Amazon ECR で AWS IoT Greengrass レジストリにログインします。

    aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin https://216483018798.dkr.ecr.us-west-2.amazonaws.com

    成功すると、Login Succeeded が出力されます。

  2. AWS IoT Greengrass コンテナイメージを取得します。

    docker pull 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
    注記

    latest イメージには、Amazon Linux 2 ベースイメージにインストールされた最新の安定バージョンの AWS IoT Greengrass Core ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。利用可能なすべての画像を検索するには、 タグ ページ ドッカーハブ または aws ecr list-images コマンド。以下に例を示します。

    aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass

コマンドプロンプトで次のコマンドを実行します。Windows で Docker コマンドを使用する前に、Docker デスクトップが実行されている必要があります。

  1. Amazon ECR で AWS IoT Greengrass レジストリにログインします。

    aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin https://216483018798.dkr.ecr.us-west-2.amazonaws.com

    成功すると、Login Succeeded が出力されます。

  2. AWS IoT Greengrass コンテナイメージを取得します。

    docker pull 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
    注記

    latest イメージには、Amazon Linux 2 ベースイメージにインストールされた最新の安定バージョンの AWS IoT Greengrass Core ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。利用可能なすべての画像を検索するには、 タグ ページ ドッカーハブ または aws ecr list-images コマンド。以下に例を示します。

    aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass

ステップ 2. Greengrass のグループとコアを作成して設定する

Docker イメージには AWS IoT Greengrass Core ソフトウェアがインストールされていますが、Greengrass のグループとコアを作成する必要があります。これには、証明書とコア設定ファイルのダウンロードが含まれます。

  • AWS IoT の AWS IoT Greengrass の設定 の手順を行います。AWS IoT Greengrass Core ソフトウェアをダウンロードするステップはスキップしてください。このソフトウェアとその実行時の依存関係は、Docker イメージにセットアップ済みです。

ステップ 3. AWS IoT Greengrass をローカルで実行する

グループの設定が完了したら、コアを設定して開始する準備ができました。これを実行する方法を示す手順については、以下でオペレーティングシステムを選択します。

コンピュータのターミナルで以下のコマンドを実行します。

  1. 証明書と構成ファイル(Greengrassグループの作成時にダウンロードしたファイル)を、次のような既知の場所に解凍します。 /tmp. 例:

    tar xvzf hash-setup.tar.gz -C /tmp/
  2. AWS IoT 開発者ガイド の「サーバー認証」を参照し、適切なルート CA 証明書を選択します。Amazon Trust Services (ATS) エンドポイントおよび ATS ルート CA 証明書を使用することをお勧めします。

    次のコマンドを実行して、証明書と設定ファイルを解凍したディレクトリにルート CA 証明書をダウンロードします。証明書により、デバイスは TLS 経由で AWS IoT に接続できます。

    /tmp をディレクトリへのパスに置き換えます。

    重要

    ルート CA 証明書タイプは、エンドポイントと一致する必要があります。ATS ルート CA 証明書を ATS エンドポイントで使用するか (推奨)、VeriSign ルート CA 証明書をレガシーエンドポイントで使用します。レガシーエンドポイントは、一部の AWS リージョンでのみサポートされています。詳細については、「サービスエンドポイントはルートCA証明書タイプと一致する必要があります」を参照してください。

    • ATS エンドポイントを使用する場合は (推奨)、適切な ATS ルート CA 証明書をダウンロードします。次の例では AmazonRootCA1.pem をダウンロードします。

      cd /tmp/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    • レガシーエンドポイントの場合は、Verisign ルート CA 証明書をダウンロードします。このチュートリアルではレガシーエンドポイントを使用できますが、ATS エンドポイントと ATS ルート CA 証明書を使用することをお勧めします。

      cd /tmp/certs/ sudo wget -O root.ca.pem https://www.websecurity.digicert.com/content/dam/websitesecurity/digitalassets/desktop/pdfs/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem
    注記

    wget -O パラメータは大文字の O です。

  3. AWS IoT Greengrass を開始して、証明書と設定ファイルを Docker コンテナにバインドマウントします。

    /tmp は、証明書と設定ファイルを解凍したパスに置き換えてください。

    docker run --rm --init -it --name aws-iot-greengrass \ --entrypoint /greengrass-entrypoint.sh \ -v /tmp/certs:/greengrass/certs \ -v /tmp/config:/greengrass/config \ -p 8883:8883 \ 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

    出力は、次の例のようになります。

    Setting up greengrass daemon Validating hardlink/softlink protection Waiting for up to 30s for Daemon to start Greengrass successfully started with PID: 10

コンピュータのターミナルで以下のコマンドを実行します。

  1. 証明書と構成ファイル(Greengrassグループの作成時にダウンロードしたファイル)を、次のような既知の場所に解凍します。 /tmp. 例:

    tar xvzf hash-setup.tar.gz -C /tmp/
  2. AWS IoT 開発者ガイド の「サーバー認証」を参照し、適切なルート CA 証明書を選択します。Amazon Trust Services (ATS) エンドポイントおよび ATS ルート CA 証明書を使用することをお勧めします。

    次のコマンドを実行して、証明書と設定ファイルを解凍したディレクトリにルート CA 証明書をダウンロードします。証明書により、デバイスは TLS 経由で AWS IoT に接続できます。

    /tmp をディレクトリへのパスに置き換えます。

    重要

    ルート CA 証明書タイプは、エンドポイントと一致する必要があります。ATS ルート CA 証明書を ATS エンドポイントで使用するか (推奨)、VeriSign ルート CA 証明書をレガシーエンドポイントで使用します。レガシーエンドポイントは、一部の AWS リージョンでのみサポートされています。詳細については、「サービスエンドポイントはルートCA証明書タイプと一致する必要があります」を参照してください。

    • ATS エンドポイントを使用する場合は (推奨)、適切な ATS ルート CA 証明書をダウンロードします。次の例では AmazonRootCA1.pem をダウンロードします。

      cd /tmp/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    • レガシーエンドポイントの場合は、Verisign ルート CA 証明書をダウンロードします。このチュートリアルではレガシーエンドポイントを使用できますが、ATS エンドポイントと ATS ルート CA 証明書を使用することをお勧めします。

      cd /tmp/certs/ sudo wget -O root.ca.pem https://www.websecurity.digicert.com/content/dam/websitesecurity/digitalassets/desktop/pdfs/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem
    注記

    wget -O パラメータは大文字の O です。

  3. AWS IoT Greengrass を開始して、証明書と設定ファイルを Docker コンテナにバインドマウントします。

    /tmp は、証明書と設定ファイルを解凍したパスに置き換えてください。

    docker run --rm --init -it --name aws-iot-greengrass \ --entrypoint /greengrass-entrypoint.sh \ -v /tmp/certs:/greengrass/certs \ -v /tmp/config:/greengrass/config \ -p 8883:8883 \ 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

    出力は、次の例のようになります。

    Setting up greengrass daemon Validating hardlink/softlink protection Waiting for up to 30s for Daemon to start Greengrass successfully started with PID: 10
  1. WinZip や 7-Zip などのユーティリティを使用して、Greengrass グループを作成した際にダウンロードした証明書と設定ファイルを解凍します。詳細については、WinZip のドキュメントを参照してください。

    コンピュータでダウンロードした hash-setup.tar.gz ファイルを見つけて、ファイルを C:\Users\%USERNAME%\Downloads\ に解凍します。

  2. AWS IoT 開発者ガイド の「サーバー認証」を参照し、適切なルート CA 証明書を選択します。Amazon Trust Services (ATS) エンドポイントおよび ATS ルート CA 証明書を使用することをお勧めします。

    次のコマンドを実行して、証明書と設定ファイルを解凍したディレクトリにルート CA 証明書をダウンロードします。証明書により、デバイスは TLS 経由で AWS IoT に接続できます。

    重要

    ルート CA 証明書タイプは、エンドポイントと一致する必要があります。ATS ルート CA 証明書を ATS エンドポイントで使用するか (推奨)、VeriSign ルート CA 証明書をレガシーエンドポイントで使用します。レガシーエンドポイントは、一部の AWS リージョンでのみサポートされています。詳細については、「サービスエンドポイントはルートCA証明書タイプと一致する必要があります」を参照してください。

    • ATS エンドポイントを使用する場合は (推奨)、適切な ATS ルート CA 証明書をダウンロードします。次の例では AmazonRootCA1.pem をダウンロードします。

      • curl をインストールしている場合は、コマンドプロンプトで次のコマンドを実行します。

        cd C:\Users\%USERNAME%\Downloads\certs curl https://www.amazontrust.com/repository/AmazonRootCA1.pem -o root.ca.pem
      • それ以外の場合は、ウェブブラウザで Amazon ルート CA 1 証明書を開きます。解凍した証明書が含まれる C:\Users\%USERNAME%\Downloads\certs ディレクトリに、ドキュメントを root.ca.pem として保存します。

        注記

        ブラウザに応じて、ブラウザから直接ファイルを保存するか、表示されたキーをクリップボードにコピーしてメモ帳で保存します。

    • レガシーエンドポイントの場合は、Verisign ルート CA 証明書をダウンロードします。このチュートリアルではレガシーエンドポイントを使用できますが、ATS エンドポイントと ATS ルート CA 証明書を使用することをお勧めします。

      • curl をインストールしている場合は、コマンドプロンプトで次のコマンドを実行します。

        cd C:\Users\%USERNAME%\Downloads\certs curl https://www.websecurity.digicert.com/content/dam/websitesecurity/digitalassets/desktop/pdfs/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem -o root.ca.pem
      • それ以外の場合は、ウェブブラウザで VeriSign クラス 3 Public Primary G5 ルート CA 証明書を開きます。解凍した証明書が含まれる C:\Users\%USERNAME%\Downloads\certs ディレクトリに、ドキュメントを root.ca.pem として保存します。

        注記

        ブラウザに応じて、ブラウザから直接ファイルを保存するか、表示されたキーをクリップボードにコピーしてメモ帳で保存します。

  3. AWS IoT Greengrass を開始して、証明書と設定ファイルを Docker コンテナにバインドマウントします。コマンドプロンプトで次のコマンドを実行します。

    docker run --rm --init -it --name aws-iot-greengrass --entrypoint /greengrass-entrypoint.sh -v c:/Users/%USERNAME%/Downloads/certs:/greengrass/certs -v c:/Users/%USERNAME%/Downloads/config:/greengrass/config -p 8883:8883 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

    Docker で C:\ ドライブを Docker デーモンと共有するように要求されたら、Docker コンテナ内で C:\ ディレクトリをバインドマウントすることを許可します。詳細については、Docker ドキュメントの「共有ドライブ」を参照してください。

    出力は、次の例のようになります。

    Setting up greengrass daemon Validating hardlink/softlink protection Waiting for up to 30s for Daemon to start Greengrass successfully started with PID: 10
注記

コンテナがシェルを開かずにすぐに終了する場合は、イメージを起動したときに Greengrass ランタイムログをバインドマウントすることで問題をデバッグできます。詳細については、Docker コンテナの外部で Greengrass ランタイムログを永続化する を参照してください。

ステップ 4. Greengrassグループに対して「コンテナなし」コンテナ化を構成する

Docker コンテナで AWS IoT Greengrass で実行する場合、すべての Lambda 関数はコンテナ化を使用しないで実行する必要があります。このステップでは、グループのデフォルトのコンテナ化を [No container (コンテナなし)] に設定します。グループを初めてデプロイする前に行う必要があります。

  1. AWS IoT コンソールで、[Greengrass]、[グループ] の順に選択します。

  2. 設定を変更するグループを選択します。

  3. [設定] を選択します。

  4. [Lambda Runtime Environment (Lambda ランタイム環境)] で、[No container (コンテナなし)] を選択します。

  5. [Update default Lambda execution configuration (デフォルトの Lambda 実行設定の更新)] を選択します。確認ウィンドウでメッセージを確認し、[続行] を選択します。

詳細については、グループ内の Lambda 関数のコンテナ化のデフォルト設定 を参照してください。

注記

デフォルトでは、Lambda 関数はグループコンテナ化設定を使用します。Docker コンテナで AWS IoT Greengrass が実行されているときに、すべての Lambda 関数の [No container (コンテナなし)] 設定をオーバーライドすると、デプロイは失敗します。

ステップ 5. 展開 Lambda 関数を AWS IoT Greengrass ドッカーコンテナ

存続期間の長い Lambda 関数を Greengrass Docker コンテナにデプロイできます。

ステップ 6. (オプション)Dockerコンテナで実行されているGreengrassと対話するデバイスを導入する

Docker コンテナで実行中の AWS IoT Greengrass を操作する Greengrass デバイスをデプロイすることもできます。

AWS IoT Greengrass Docker コンテナの停止

AWS IoT Greengrass Docker コンテナを停止するには、ターミナルまたはコマンドプロンプトで Ctrl+C を押します。このアクションにより、SIGTERM が Greengrass デーモンプロセスに送信され、Greengrass デーモンプロセスとデーモンプロセスで開始されたすべての Lambda プロセスが破棄されます。Docker コンテナは /dev/init プロセスで PID 1 として初期化されます。これにより、残存するゾンビ状態のプロセスが削除されます。詳細については、Docker run リファレンスを参照してください。

Docker コンテナでの AWS IoT Greengrass のトラブルシューティング

以下の情報は、Docker コンテナでの AWS IoT Greengrass の実行に関する問題のトラブルシューティングに役立ちます。

エラー 非TTYデバイスからの対話型ログインは実行できません。

ソリューション このエラーは、 aws ecr get-login-password コマンド。最新の AWS CLI バージョン2またはバージョン1。以下を使用することをお勧めします。 AWS CLI バージョン2。詳細については、「AWS CLI のインストール」 (AWS Command Line Interface ユーザーガイド) を参照してください。

エラー 不明なオプション: -no-include-email。

ソリューション このエラーは、 aws ecr get-login コマンド。最新の AWS CLI バージョンがインストールされていることを確認します (たとえば、pip install awscli --upgrade --user を実行します)。Windows を使用していて、MSI インストーラを使用して CLI をインストールした場合、インストールプロセスを繰り返す必要があります。詳細については、以下を参照してください。 のインストール AWS Command Line Interface Microsoft Windows の場合AWS Command Line Interface ユーザーガイド.

警告 IPv4 は無効になっています。ネットワークは機能しません。

ソリューション 実行中に、この警告または同様のメッセージが表示される場合があります。 AWS IoT Greengrass Linuxコンピュータで。このステップで説明しているように、IPv4 ネットワーク転送を有効にします。IPv4 転送が有効ではない場合、AWS IoT Greengrass クラウドデプロイと MQTT 通信は機能しません。詳細については、Docker ドキュメントの「Configure namespaced kernel parameters (sysctls) at runtime」を参照してください。

エラー ファイアウォールは、Windowsとコンテナ間のファイル共有をブロックしています。

ソリューション このエラーが表示されるか、 Firewall Detected WindowsコンピュータでDockerを実行しているときに表示されるメッセージ。このエラーは、仮想プライベートネットワーク (VPN) にサインインしているときにも発生する場合があり、ネットワーク設定が原因で共有ドライブをマウントできないことがあります。このような場合は、VPN をオフにし、Docker コンテナを再実行します。

エラー GetAuthorizationToken 操作の呼び出し中にエラーが発生しました (AccessDeniedException)。ユーザー: arn:aws:iam::<account-id>:user/<user-name> は、次の実行権限がありません: ecr:GetAuthorizationToken on resource:*

このエラーは、 aws ecr get-login-password コマンドで、 にアクセスするのに十分な権限がない場合、 Amazon ECR リポジトリです。詳細については、以下を参照してください。 Amazon ECR リポジトリ ポリシーの例 および アクセスする Amazon ECR リポジトリAmazon ECR ユーザーガイド.

一般的な AWS IoT Greengrass のトラブルシューティングヘルプについては、「トラブルシューティングAWS IoT Greengrass」を参照してください。

Docker コンテナでの AWS IoT Greengrass のデバッグ

Docker コンテナの問題をデバッグするには、Greengrass ランタイムログを維持するか、Docker コンテナにインタラクティブシェルをアタッチすることができます。

Docker コンテナの外部で Greengrass ランタイムログを永続化する

/greengrass/ggc/var/log ディレクトリをバインドマウントした後で、AWS IoT Greengrass Docker コンテナを実行できます。ログは、コンテナが終了した後または削除された後も保持されます。

Linux または macOS の場合:

ホスト上で実行されている Greengrass Docker コンテナを停止してから、ターミナルで次のコマンドを実行します。これは Greengrass の log ディレクトリをバインドマウントして Docker イメージを起動します。

/tmp は、証明書と設定ファイルを解凍したパスに置き換えてください。

docker run --rm --init -it --name aws-iot-greengrass \ --entrypoint /greengrass-entrypoint.sh \ -v /tmp/certs:/greengrass/certs \ -v /tmp/config:/greengrass/config \ -v /tmp/log:/greengrass/ggc/var/log \ -p 8883:8883 \ 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

次に、ホストの /tmp/log でログを確認して、Greengrass が Docker コンテナ内で実行されている間に何が起こったのかを確認できます。

Windows の場合:

ホスト上で実行されている Greengrass Docker コンテナを停止してから、コマンドプロンプトで次のコマンドを実行します。これは Greengrass の log ディレクトリをバインドマウントして Docker イメージを起動します。

cd C:\Users\%USERNAME%\Downloads mkdir log docker run --rm --init -it --name aws-iot-greengrass --entrypoint /greengrass-entrypoint.sh -v c:/Users/%USERNAME%/Downloads/certs:/greengrass/certs -v c:/Users/%USERNAME%/Downloads/config:/greengrass/config -v c:/Users/%USERNAME%/Downloads/log:/greengrass/ggc/var/log -p 8883:8883 216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

次に、ホストの C:/Users/%USERNAME%/Downloads/log でログを確認して、Greengrass が Docker コンテナ内で実行されている間に何が起こったのかを確認できます。

インタラクティブシェルを Docker コンテナにアタッチするには

インタラクティブシェルをアタッチして、AWS IoT Greengrass Docker コンテナを実行できます。これは、Greengrass Docker コンテナの状態を調査するのに役立ちます。

Linux または macOS の場合:

Greengrass Docker コンテナの実行中に、別の端末で次のコマンドを実行してください。

docker exec -it $(docker ps -a -q -f "name=aws-iot-greengrass") /bin/bash
Windows の場合:

Greengrass Docker コンテナの実行中に、別のコマンドプロンプトで次のコマンドを実行してください。

docker ps -a -q -f "name=aws-iot-greengrass"

置換 gg-container-idcontainer_id 前のコマンドの結果です。

docker exec -it gg-container-id /bin/bash