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

AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行することを強くお勧めします。 AWS IoT Greengrass Version 2これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます

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

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) のベースイメージを使用します。

重要

2022 年 6 月 30 日、AWS IoT Greengrass は Amazon Elastic Container Registry (Amazon ECR) と Docker Hub に公開されている AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージのメンテナンスを終了します。これらの Docker イメージは、メンテナンス終了から 1 年後の 2023 年 6 月 30 日まで、Amazon ECR および Docker Hub から引き続きダウンロードすることができます。ただし、AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージでは、2022 年 6 月 30 日のメンテナンス終了後、セキュリティパッチやバグ修正が提供されなくなります。これらの Docker イメージに依存する本番ワークロードを実行する場合は、AWS IoT Greengrass が提供する Dockerfiles を使用して、独自の Docker イメージを構築することをお勧めします。詳細については、「AWS IoT Greengrass Docker ソフトウェア」を参照してください。

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

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

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

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

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

前提条件

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

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

    AWS CLI version 2
    • Docker バージョン 18.09 以降。以前のバージョンでも動作する可能性がありますが、18.09 以降を推奨します。

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

      • AWS CLI バージョン 2 をインストールするには、「Installing the AWS CLI version 2」( バージョン 2 のインストール) を参照してください。

      • AWS CLI を設定するには、「AWS CLI の設定」を参照してください。

      注記

      Windows コンピュータで AWS CLI バージョン 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 をインストールするには、「Installing the AWS CLI version 1」( バージョン 1 のインストール) を参照してください。

      • AWS CLI を設定するには、「AWS CLI の設定」を参照してください。

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

        pip install awscli --upgrade --user
      注記

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

      • AWS CLI バージョン 1 のインストールで botocore のインストールに失敗する場合は、Python および pip インストールを使用してみてください。

      • AWS CLI バージョン 1 以降にアップグレードするには、MSI のインストールプロセスを繰り返す必要があります。

  • ユーザーが Amazon Elastic Container Registry (Amazon ECR) のリソースにアクセスできるようにするには、次のアクセス権限を付与する必要があります。

    • Amazon ECR ユーザーがレジストリで認証され、Amazon ECR リポジトリでのイメージのプッシュまたはプルを行えるようにするには、AWS Identity and Access Management(IAM) ポリシーを介して ecr:GetAuthorizationToken 権限を付与する必要があります。詳細については、「Amazon ECR ユーザーガイド」の「Amazon ECR Repository Policy Examples」(Amazon ECR リポジトリポリシーの例) および「1 つの Amazon ECR リポジトリにアクセスする」を参照してください。

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

AWS には AWS IoT Greengrass Core ソフトウェアがインストールされた Docker イメージが用意されています。

警告

v1.11.6 以降の AWS IoT Greengrass Core ソフトウェアでは、Greengrass Docker イメージに Python 2.7 が含まれていません。これは、Python 2.7 のサポートが 2020 年に終了し、セキュリティ更新プログラムを取得できなくなったためです。これらの Docker イメージに更新する場合は、アプリケーションが新しい Docker イメージで動作することを検証した後に、アップデートを本番デバイスに展開することをお勧めします。Greengrass Docker イメージを使用するアプリケーションに Python 2.7 が必要な場合は、Greengrass Dockerfile を変更して、アプリケーションに Python 2.7 を含めることができます。

Amazon ECR から latest イメージをプルする方法については、お使いのオペレーティングシステムを選択してください。

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

  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 ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。使用可能なすべてのイメージを確認するには、Docker Hub[Tags] (タグ) ページを確認するか、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 IoT 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 ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。使用可能なすべてのイメージを確認するには、Docker Hub[Tags] (タグ) ページを確認するか、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 ソフトウェアが含まれています。他のイメージをリポジトリからプルすることもできます。使用可能なすべてのイメージを確認するには、Docker Hub[Tags] (タグ) ページを確認するか、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 のグループとコアを作成する必要があります。これには、証明書とコア設定ファイルのダウンロードが含まれます。

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

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

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

  1. デバイスのセキュリティリソース用のフォルダを作成し、証明書とキーをそのフォルダに移動します。以下のコマンドを実行します。path-to-security-files (セキュリティファイルへのパス) をセキュリティリソースへのパスに置き換え、certificateId をファイル名に含まれる証明書 ID に置き換えます。

    mkdir /tmp/certs mv path-to-security-files/certificateId-certificate.pem.crt /tmp/certs mv path-to-security-files/certificateId-public.pem.key /tmp/certs mv path-to-security-files/certificateId-private.pem.key /tmp/certs mv path-to-security-files/AmazonRootCA1.pem /tmp/certs
  2. デバイスの設定用のフォルダを作成し、AWS IoT Greengrass Core 設定ファイルをそのフォルダに移動します。以下のコマンドを実行します。configuration-file-path を、設定ファイルへのパスに置き換えます。

    mkdir /tmp/config mv path-to-config-file/config.json /tmp/config
  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. デバイスのセキュリティリソース用のフォルダを作成し、証明書とキーをそのフォルダに移動します。以下のコマンドを実行します。path-to-security-files (セキュリティファイルへのパス) をセキュリティリソースへのパスに置き換え、certificateId をファイル名に含まれる証明書 ID に置き換えます。

    mkdir /tmp/certs mv path-to-security-files/certificateId-certificate.pem.crt /tmp/certs mv path-to-security-files/certificateId-public.pem.key /tmp/certs mv path-to-security-files/certificateId-private.pem.key /tmp/certs mv path-to-security-files/AmazonRootCA1.pem /tmp/certs
  2. デバイスの設定用のフォルダを作成し、AWS IoT Greengrass Core 設定ファイルをそのフォルダに移動します。以下のコマンドを実行します。configuration-file-path を、設定ファイルへのパスに置き換えます。

    mkdir /tmp/config mv path-to-config-file/config.json /tmp/config
  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. デバイスのセキュリティリソース用のフォルダを作成し、証明書とキーをそのフォルダに移動します。コマンドプロンプトで次のコマンドを実行します。path-to-security-files (セキュリティファイルへのパス) をセキュリティリソースへのパスに置き換え、certificateId をファイル名に含まれる証明書 ID に置き換えます。

    mkdir C:\Users\%USERNAME%\Downloads\certs move path-to-security-files\certificateId-certificate.pem.crt C:\Users\%USERNAME%\Downloads\certs move path-to-security-files\certificateId-public.pem.key C:\Users\%USERNAME%\Downloads\certs move path-to-security-files\certificateId-private.pem.key C:\Users\%USERNAME%\Downloads\certs move path-to-security-files\AmazonRootCA1.pem C:\Users\%USERNAME%\Downloads\certs
  2. デバイスの設定用のフォルダを作成し、AWS IoT Greengrass Core 設定ファイルをそのフォルダに移動します。コマンドプロンプトで次のコマンドを実行します。configuration-file-path を、設定ファイルへのパスに置き換えます。

    mkdir C:\Users\%USERNAME%\Downloads\config move path-to-config-file\config.json C:\Users\%USERNAME%\Downloads\config
  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 コンソールのナビゲーションペインの [Manage] (管理) で、[Greengrass devices] (Greengrass デバイス) を展開して、[Groups (V1)] (グループ (V1))を選択します。

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

  3. [Lambda functions] (Lambda 関数) タブを選択します。

  4. [Default Lambda function runtime environment] (デフォルトの Lambda 関数ランタイム環境) から、[Edit] (編集) を選択します。

  5. [Edit default Lambda function runtime environment] (デフォルトの Lambda 関数ランタイム環境を編集する) の、[Default Lambda function containerization] (デフォルトの Lambda 関数のコンテナ化) でコンテナ化の設定を変更します。

  6. [Save (保存)] を選択します。

変更は、グループのデプロイ時に反映されます。

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

注記

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

ステップ 5: Lambda 関数を AWS IoT Greengrass Docker コンテナにデプロイする

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

ステップ 6: (オプション) Docker コンテナで実行中の Greengrass を操作するクライアントデバイスをデプロイする

Docker コンテナで実行中の AWS IoT 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 の実行に関する問題のトラブルシューティングに役立ちます。

次のエラーが発生する。Cannot perform an interactive login from a non TTY device。

解決策: aws ecr get-login-password コマンドを実行すると、このエラーが発生することがあります。最新の AWS CLI バージョン 2 またはバージョン 1 がインストールされていることを確認してください。AWS CLI バージョン 2 を使用することをお勧めします。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI のインストール」を参照してください。

エラー「Unknown options: -no-include-email」が発生する。

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

次の警告が表示される。IPv4 is disabled。ネットワークは機能しません。

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

エラー: A firewall is blocking file Sharing between windows and the containers. (ファイアウォールが、ウィンドウとコンテナー間のファイル共有をブロックしています。)

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

次のエラーが発生する。An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::<account-id>:user/<user-name> is not authorized to perform: ecr:GetAuthorizationToken on resource: *

このエラーは、Amazon ECR リポジトリにアクセスするための十分な権限がない場合、aws ecr get-login-password コマンドの実行時に表示されることがあります。詳細については、「Amazon ECR ユーザーガイド」の「Amazon ECR Repository Policy Examples」(Amazon ECR リポジトリポリシーの例) および「1 つの 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-id を、前のコマンドから得られた container_id の結果に置き換えます。

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