クイックスタート: 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を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます

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

クイックスタート: Greengrass デバイスのセットアップ

Greengrass デバイスのセットアップは、 の使用を開始できるように、コアデバイスを数分でセットアップするスクリプトです AWS IoT Greengrass。このスクリプトは、次の場合に使用します。

  1. デバイスを設定し、 AWS IoT Greengrass Core ソフトウェアをインストールします。

  2. クラウドベースのリソースを設定します。

  3. 必要に応じて、 AWS IoT Greengrass コア AWS IoT から にMQTTメッセージを送信する Hello World Lambda 関数を使用して Greengrass グループをデプロイします。このセットアップでは、次の図に示す Greengrass 環境を設定します。

    Hello World Lambda 関数は、 AWS IoT Greengrass コア AWS IoT から にMQTTメッセージを送信します。

要件

Greengrass デバイスのセットアップには、次の要件があります。

  • コアデバイスは、サポートされているプラットフォームを使用する必要があります。デバイスには、aptyum、または opkg の適切なパッケージマネージャーがインストールされている必要があります。

     

  • スクリプトを実行する Linux ユーザーは、sudo として実行するアクセス許可を持っている必要があります。

     

  • AWS アカウント 認証情報を指定する必要があります。詳細については、「AWS アカウント 認証情報の提供」を参照してください。

    注記

    Greengrass デバイスセットアップでは、デバイスに最新バージョンの AWS IoT Greengrass Core ソフトウェアがインストールされます。 AWS IoT Greengrass Core ソフトウェアをインストールすることで、Greengrass Core ソフトウェアライセンス契約 に同意したものとみなされます。

Greengrass デバイスのセットアップを実行する

Greengrass デバイスのセットアップは、ほんの数ステップで実行できます。 AWS アカウント 認証情報を指定すると、スクリプトは Greengrass コアデバイスをプロビジョニングし、Greengrass グループを数分でデプロイします。ターゲットデバイスのターミナルウィンドウで次のコマンドを実行します。

注記

次のステップでは、スクリプトを対話モードで実行する方法を示します。対話モードでは、各入力値を入力または受け入れるように求められます。スクリプトをサイレントで実行する方法については、「Greengrass デバイスのセットアップをサイレントモードで実行する」を参照してください。

 

  1. 認証情報を入力しないでください。この手順では、一時的なセキュリティ認証情報を環境変数として提供することを前提としています。

    export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    注記

    Raspbian または OpenWrt プラットフォームで Greengrass デバイスセットアップを実行している場合は、これらのコマンドのコピーを作成します。デバイスを再起動した後、それらを再度指定する必要があります。

  2. スクリプトをダウンロードして起動します。wget または curl を使用してスクリプトをダウンロードできます。

    wget:

    wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive

    curl:

    curl https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh > gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
  3. 入力値を求めるコマンドプロンプトに進みます。[Enter] キーを押してデフォルト値を使用するか、カスタム値を入力して [Enter] キーを押します。

    スクリプトは、次のようなステータスメッセージを端末に書き込みます。

    端末にメッセージを出力します。
  4. コアデバイスが Raspbian または を実行している場合は OpenWrt、プロンプトが表示されたらデバイスを再起動し、認証情報を入力してからスクリプトを再起動します。

    1. デバイスを再起動するように求められたら、次のいずれかのコマンドを実行します。

      Raspbian プラットフォームの場合:

      sudo reboot

      OpenWrt プラットフォームの場合:

      reboot
    2. デバイスの起動後、ターミナルを開き、環境変数として認証情報を入力します。

      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    3. スクリプトを再起動します。

      sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
    4. 前回のセッションからの入力値を使用するか、新規インストールを開始するかのプロンプトが表示されたら、yes と入力して入力値を再利用します。

      注記

      再起動が必要なプラットフォームでは、認証情報を除く、前のセッションからの入力値が一時的に GreengrassDeviceSetup.config.info ファイルに保存されます。

    セットアップが完了すると、ターミナルには、次のような成功ステータスメッセージが表示されます。

    端末の出力に成功メッセージが表示されます。
  5. 指定した入力値を使用してスクリプトが設定する新しい Greengrass グループを確認します。

    1. コンピュータAWS Management Consoleの にサインインし、 AWS IoT コンソールを開きます。

      注記

      コンソールで AWS リージョン 選択した が、Greengrass 環境の設定に使用したものと同じであることを確認します。デフォルトでは、[Region] (リージョン) は [US West (Oregon)] (米国西部 (オレゴン)) です。

    2. ナビゲーションペインで、[Greengrass devices] (Greengrass デバイス) を展開し、[Groups (V1)] (グループ〔V1〕) を選択して、新しく作成したグループを検索します。

  6. Hello World Lambda 関数を含めた場合、Greengrass デバイスセットアップは、Greengrass グループをコアデバイスにデプロイします。Lambda 関数をテストしたり、グループから Lambda 関数を削除したりする方法については、開始方法チュートリアルのモジュール 3-1 の「Lambda 関数がコアデバイスで実行されていることを確認する」に進みます。

    注記

    コンソールで AWS リージョン 選択した が、Greengrass 環境の設定に使用したものと同じであることを確認します。デフォルトでは、[Region] (リージョン) は [US West (Oregon)] (米国西部 (オレゴン)) です。

    Hello World Lambda 関数を含めなかった場合は、独自の Lambda 関数を作成するか、Greengrass の他の機能を試すことができます。例えば、Docker アプリケーションデプロイ コネクタをグループに追加し、それを使用して Docker コンテナをコアデバイスにデプロイできます。

     

問題のトラブルシューティング

以下の情報を使用して、 AWS IoT Greengrass デバイスのセットアップに関する問題のトラブルシューティングを行うことができます。

Error: Python (python3.7) not found。Attempting to install it..。

解決策: Amazon EC2インスタンスを操作すると、このエラーが表示されることがあります。このエラーは、Python が /usr/bin/python3.7 フォルダにインストールされていない場合に発生します。このエラーを解決するには、Python をインストールした後で正しいディレクトリに移動します。

sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3.7

その他のトラブルシューティング

AWS IoT Greengrass デバイスのセットアップに関するその他の問題をトラブルシューティングするには、ログファイルでデバッグ情報を探します。

  • Greengrass デバイスのセットアップ設定に関する問題については、/tmp/greengrass-device-setup-bootstrap-epoch-timestamp.log ファイルを確認してください。

  • Greengrass グループまたはコア環境の設定に問題がある場合は、指定したディレクトリと同じディレクトリにある、GreengrassDeviceSetup-date-time.log または指定した場所にある gg-device-setup-latest.sh ファイルを確認してください。

トラブルシューティングのヘルプの詳細については、「」を参照AWS IoT Greengrass のトラブルシューティングするか、 AWS IoT GreengrassAWS re:Post の タグを確認してください。

Greengrass デバイスセットアップ設定オプション

AWS リソースにアクセスし、Greengrass 環境をセットアップするように Greengrass デバイスのセットアップを設定します。

AWS アカウント 認証情報の提供

Greengrass デバイスのセットアップでは、 AWS アカウント 認証情報を使用して リソースにアクセスします AWS 。IAM ユーザーの長期認証情報、または IAMロールからの一時的なセキュリティ認証情報をサポートします。

最初に、認証情報を取得します。

  • 長期認証情報を使用するには、IAMユーザーのアクセスキー ID とシークレットアクセスキーを指定します。長期認証情報のアクセスキーの作成については、「 IAMユーザーガイド」のIAM「ユーザーのアクセスキーの管理」を参照してください。

     

  • 一時的なセキュリティ認証情報を使用するには (推奨)、引き受けたIAMロールのアクセスキー ID、シークレットアクセスキー、およびセッショントークンを指定します。コマンドから一時的なセキュリティ認証情報を AWS STS assume-role抽出する方法については、「 ユーザーガイド」の「 での一時的なセキュリティ認証情報 AWS CLIの使用」を参照してください。 IAM

注記

このチュートリアルでは、IAMユーザーまたはIAMロールに管理者アクセス許可があることを前提としています。

次に、次の 2 つのうちいずれかの方法で Greengrass デバイスのセットアップに認証情報を入力します。

  • 環境変数として。Greengrass デバイスのセットアップを実行する のステップ 1 に示すようにスクリプトを開始する前に、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、および AWS_SESSION_TOKEN (必要な場合)環境変数を設定します。

     

  • 入力値として。スクリプトを起動した後、アクセスキー ID、シークレットアクセスキー、およびセッショントークン (必要な場合) の値をターミナルに直接入力します。

Greengrass デバイスのセットアップでは、認証情報が保存または保存されません。

 

入力値の指定

対話モードでは、入力値を求めるプロンプトが表示されます。[Enter] キーを押してデフォルト値を使用するか、カスタム値を入力して [Enter] キーを押します。サイレントモードでは、スクリプトの起動後に入力値を指定します。

AWS アクセスキー ID

長期的または一時的なセキュリティ認証情報のアクセスキー ID。環境変数として認証情報を指定しない場合のみ、このオプションを入力値として指定してください。詳細については、「AWS アカウント 認証情報の提供」を参照してください。

サイレントモードのオプション名: --aws-access-key-id

AWS シークレットアクセスキー

長期的または一時的なセキュリティ認証情報からのシークレットアクセスキー。環境変数として認証情報を指定しない場合のみ、このオプションを入力値として指定してください。詳細については、「AWS アカウント 認証情報の提供」を参照してください。

サイレントモードのオプション名: --aws-secret-access-key

AWS セッショントークン

一時的なセキュリティ認証情報からのセッショントークン。環境変数として認証情報を指定しない場合のみ、このオプションを入力値として指定してください。詳細については、「AWS アカウント 認証情報の提供」を参照してください。

サイレントモードのオプション名: --aws-session-token

AWS リージョン

Greengrass グループ AWS リージョン を作成する 。サポートされている のリストについては、 AWS リージョン「」のAWS IoT Greengrass「」を参照してくださいAmazon Web Services 全般のリファレンス

デフォルト値: us-west-2

サイレントモードのオプション名: --region

グループ名

Greengrass グループの名前。

デフォルト値: GreengrassDeviceSetup_Group_guid

サイレントモードのオプション名: --group-name

コア名

Greengrass Core の名前。コアは、 Core ソフトウェアを実行する AWS IoT デバイス (モノ) AWS IoT Greengrass です。コアが AWS IoT レジストリと Greengrass グループに追加されます。名前を指定する場合は、 AWS アカウント と で一意である必要があります AWS リージョン。

デフォルト値: GreengrassDeviceSetup_Core_guid

サイレントモードのオプション名: --core-name

AWS IoT Greengrass Core ソフトウェアのインストールパス

AWS IoT Greengrass Core ソフトウェアをインストールするデバイスファイルシステム内の場所。

デフォルト値: /

サイレントモードのオプション名: --ggc-root-path

Hello World Lambda 関数

Greengrass グループに Hello World Lambda 関数を含めるかどうかを示します。この関数は、5 秒ごとに hello/worldトピックにMQTTメッセージを発行します。

このスクリプトは、このユーザー定義の Lambda 関数を で作成して公開し AWS Lambda 、Greengrass グループに追加します。このスクリプトは、関数が にMQTTメッセージを送信できるようにするサブスクリプションを グループに作成します AWS IoT。

注記

これは Python 3.7 Lambda 関数です。Python 3.7 がデバイスにインストールされておらず、スクリプトがそれをインストールできない場合、スクリプトはターミナルにエラーメッセージを出力します。Lambda 関数をグループに含めるには、Python 3.7 を手動でインストールし、スクリプトを再起動する必要があります。Lambda 関数を使用せずに Greengrass グループを作成するには、スクリプトを再起動し、関数を含めるように求められたら no を入力します。

デフォルト値: no

サイレントモードのオプション名: --hello-world-lambda - このオプションは値を取りません。関数を作成する場合は、コマンドに含めます。

デプロイのタイムアウト

Greengrass デバイスのセットアップが Greengrass グループのデプロイの状態のチェックを停止するまでの秒数。これは、グループに Hello World Lambda 関数が含まれている場合にのみ使用されます。それ以外の場合、グループはデプロイされません。

デプロイ時間は、ネットワークの速度によって異なります。ネットワーク速度が遅い場合は、この値を大きくすることができます。

デフォルト値: 180

サイレントモードのオプション名: --deployment-timeout

ログパス

Greengrass グループおよびコアセットアップオペレーションに関する情報を含むログファイルの場所。このログを使用して、Greengrass グループとコアセットアップに関するデプロイやその他の問題のトラブルシューティングを行います。

デフォルト値: ./

サイレントモードのオプション名: --log-path

詳細レベル

スクリプトの実行中にターミナルに詳細なログ情報を出力するかどうかを示します。この情報を使用して、デバイスのセットアップのトラブルシューティングを行うことができます。

デフォルト値: no

サイレントモードのオプション名: --verbose - このオプションは値を取りません。詳細なログ情報を出力する場合は、コマンドに含めます。

 

Greengrass デバイスのセットアップをサイレントモードで実行する

Greengrass デバイスのセットアップをサイレントモードで実行して、スクリプトが値の入力を要求しないようにできます。サイレントモードで実行するには、スクリプトの起動後に bootstrap-greengrass モードと入力値 を指定します。デフォルト値を使用する場合は、入力値を省略できます。

この手順は、スクリプトの起動前に環境変数として AWS アカウント 認証情報を指定するか、スクリプトの起動後に入力値として認証情報を指定するかによって異なります。

  1. 環境変数として認証情報を指定します。次の例では、セッショントークンを含む一時的な認証情報をエクスポートします。

    export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    注記

    Raspbian または OpenWrt プラットフォームで Greengrass デバイスセットアップを実行している場合は、これらのコマンドのコピーを作成します。デバイスを再起動した後、それらを再度指定する必要があります。

  2. スクリプトをダウンロードして起動します。必要に応じて入力値を指定します。例:

    • すべてのデフォルト値を使用するには:

      wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
    • カスタム値を指定するには:

      wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
    注記

    curl を使用してスクリプトをダウンロードするには、コマンドで wget -q -Ocurl に置き換えます。

  3. コアデバイスが Raspbian または を実行している場合は OpenWrt、プロンプトが表示されたらデバイスを再起動し、認証情報を入力してからスクリプトを再起動します。

    1. デバイスを再起動するように求められたら、次のいずれかのコマンドを実行します。

      Raspbian プラットフォームの場合:

      sudo reboot

      OpenWrt プラットフォームの場合:

      reboot
    2. デバイスの起動後、ターミナルを開き、環境変数として認証情報を入力します。

      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    3. スクリプトを再起動します。

      sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
    4. 前回のセッションからの入力値を使用するか、新規インストールを開始するかのプロンプトが表示されたら、yes と入力して入力値を再利用します。

      注記

      再起動が必要なプラットフォームでは、認証情報を除く、前のセッションからの入力値が一時的に GreengrassDeviceSetup.config.info ファイルに保存されます。

    セットアップが完了すると、ターミナルには、次のような成功ステータスメッセージが表示されます。

    端末の出力に成功メッセージが表示されます。
  4. Hello World Lambda 関数を含めた場合、Greengrass デバイスセットアップは、Greengrass グループをコアデバイスにデプロイします。Lambda 関数をテストしたり、グループから Lambda 関数を削除したりする方法については、開始方法チュートリアルのモジュール 3-1 の「Lambda 関数がコアデバイスで実行されていることを確認する」に進みます。

    注記

    コンソールで AWS リージョン 選択した が、Greengrass 環境の設定に使用したものと同じであることを確認します。デフォルトでは、[Region] (リージョン) は [US West (Oregon)] (米国西部 (オレゴン)) です。

    Hello World Lambda 関数を含めなかった場合は、独自の Lambda 関数を作成するか、Greengrass の他の機能を試すことができます。例えば、Docker アプリケーションデプロイ コネクタをグループに追加し、それを使用して Docker コンテナをコアデバイスにデプロイできます。

     

  1. スクリプトをダウンロードして起動します。認証情報を指定し、必要に応じてその他の入力値を指定します。次の例は、セッショントークンを含む一時的な認証情報を提供する方法を示しています。

    • すべてのデフォルト値を使用するには:

      wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
    • カスタム値を指定するには:

      wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE= --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
    注記

    Raspbian または OpenWrt プラットフォームで Greengrass デバイスのセットアップを実行している場合は、認証情報のコピーを作成します。デバイスを再起動した後、それらを再度指定する必要があります。

    curl を使用してスクリプトをダウンロードするには、コマンドで wget -q -Ocurl に置き換えます。

  2. コアデバイスが Raspbian または を実行している場合は OpenWrt、プロンプトが表示されたらデバイスを再起動し、認証情報を入力してからスクリプトを再起動します。

    1. デバイスを再起動するように求められたら、次のいずれかのコマンドを実行します。

      Raspbian プラットフォームの場合:

      sudo reboot

      OpenWrt プラットフォームの場合:

      reboot
    2. スクリプトを再起動します。コマンドには認証情報を含める必要がありますが、他の入力値を含めることはできません。例:

      sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
    3. 前回のセッションからの入力値を使用するか、新規インストールを開始するかのプロンプトが表示されたら、yes と入力して入力値を再利用します。

      注記

      再起動が必要なプラットフォームでは、認証情報を除く、前のセッションからの入力値が一時的に GreengrassDeviceSetup.config.info ファイルに保存されます。

    セットアップが完了すると、ターミナルには、次のような成功ステータスメッセージが表示されます。

    端末の出力に成功メッセージが表示されます。
  3. Hello World Lambda 関数を含めた場合、Greengrass デバイスセットアップは、Greengrass グループをコアデバイスにデプロイします。Lambda 関数をテストしたり、グループから Lambda 関数を削除したりする方法については、開始方法チュートリアルのモジュール 3-1 の「Lambda 関数がコアデバイスで実行されていることを確認する」に進みます。

    注記

    コンソールで AWS リージョン 選択した が、Greengrass 環境の設定に使用したものと同じであることを確認します。デフォルトでは、[Region] (リージョン) は [US West (Oregon)] (米国西部 (オレゴン)) です。

    Hello World Lambda 関数を含めなかった場合は、独自の Lambda 関数を作成するか、Greengrass の他の機能を試すことができます。例えば、Docker アプリケーションデプロイ コネクタをグループに追加し、それを使用して Docker コンテナをコアデバイスにデプロイできます。