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

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

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

Greengrass デバイスセットアップは、数分でコアデバイスをセットアップするスクリプトで、AWS IoT Greengrass をすぐに使い始めることができます。スクリプト:

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

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

  3. MQTT メッセージを AWS IoT に送信する Hello World Lambda 関数を持つ Greengrass グループをデプロイします。このオプションのステップでは、次の図に示す Greengrass 環境を設定します。

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

Requirements

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=
    注記

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

  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 マネジメントコンソール にサインインし、AWS IoT コンソール を開きます。

      注記

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

    2. ナビゲーションペインで [Greengrass] を選択し、続いて [グループ] を選択して新しく作成したグループを見つけます。

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

    注記

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

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

     

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

次の情報は、AWS IoT Greengrass デバイスのセットアップに関する問題のトラブルシューティングに使用できます。

エラー: Python (python3.7) が見つかりません。インストールしようとしている

解決策: 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 Greengrass フォーラムを確認してください。

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

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

AWS アカウント認証情報を提供する

Greengrass デバイスのセットアップでは、AWS アカウントの認証情報を使用して AWS リソースにアクセスします。IAM ユーザーの長期認証情報、または 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 の「」を参照してください。アマゾン ウェブ サービス全般のリファレンス

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

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

グループ名

Greengrass グループの名前。

デフォルト値: GreengrassDeviceSetup_Group_guid

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

コア名

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

デフォルト値: GreengrassDeviceSetup_Core_guid

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

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

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

デフォルト値: /

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

Hello World Lambda 関数

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

スクリプトは、このユーザー定義 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=
    注記

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

  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 環境の設定に使用した AWS リージョンと同じであることを確認します。デフォルトでは、リージョンは 米国西部 (オレゴン) です。

    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
    注記

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

    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 環境の設定に使用した AWS リージョンと同じであることを確認します。デフォルトでは、リージョンは 米国西部 (オレゴン) です。

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