ステップ 4: デバイス上でコンポーネントをデプロイしてテストする - AWS IoT Greengrass

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

ステップ 4: デバイス上でコンポーネントをデプロイしてテストする

このセクションでは、コンポーネントをコアデバイスにデプロイして、その機能をテストします。コアデバイスでは、実際のバッテリーを模倣する仮想バッテリレベルファイルを作成します。次に、別のデプロイを作成し、コアデバイス上のコンポーネントログファイルを確認して、コンポーネントの更新の延期と承認を確認します。

更新を延期する Hello World コンポーネントをデプロイしてテストするには
  1. テキストエディタを使用して、仮想バッテリレベルファイルを作成します。このファイルは実際のバッテリーを模倣しています。

    • Linux コアデバイスの場合は、/home/ggc_user/virtual_battery.json という名前のファイルを作成します。sudo の権限でテキストエディタを実行します。

    • Windows コアデバイスの場合は、C:\Users\ggc_user\virtual_battery.json という名前のファイルを作成します。管理者としてテキストエディタを実行します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。

    sudo nano /home/ggc_user/virtual_battery.json

    次の JSON をファイルにコピーします。

    { "battery_level": 50 }
  2. Hello World コンポーネントをコアデバイスにデプロイします。以下の操作を実行します。

    1. AWS IoT Greengrass コンソールのナビゲーションメニューで、[Components] (コンポーネント) を選択します。

    2. [Components] (コンポーネント) ページで、[My components] (マイコンポーネント) タブを選択し、次に com.example.BatteryAwareHelloWorld を選択します。

    3. com.example.BatteryAwareHelloWorld ページで、[Deploy] (デプロイ) を選択します。

    4. [Add to deployment] (デプロイに追加) で、改訂する既存のデプロイを選択するか、新しいデプロイを作成することを選択して、[Next] (次へ) を選択します。

    5. 新しいデプロイの作成を選択した場合、デプロイのターゲットコアデバイスまたはモノグループを選択します。リポジトリの [Specify target] (ターゲットを指定) ページの、[Deployment target] (ターゲットのデプロイ) で、コアデバイスまたはモノグループを選択し、[Next] (次へ) を選択します。

    6. [Select components] (コンポーネントを選択) ページで、com.example.BatteryAwareHelloWorld コンポーネントが選択されていることを確認し、[Next] (次) を選択します。

    7. [Configure components] (コンポーネントを設定) ページで、com.example.BatteryAwareHelloWorld を選択したら、次の操作を行います。

      1. [Configure component] (コンポーネントを設定) を選択します。

      2. [com.example.BatteryAwareHelloWorld の設定] モーダルの [設定の更新] の下にある [マージする設定] に、次の設定更新を入力します。

        { "BatteryThreshold": 70 }
      3. [Confirm] (確認) を選択してモーダルを閉じ、次に [Next] (次) を選択します。

    8. [Confirm advanced settings] (詳細設定の確認) ページ内の [Deployment policies] (デプロイポリシー) セクションにある [Component update policy] (コンポーネントの更新ポリシー) で、[Notify components] (コンポーネントに通知) が選択されていることを確認します。新しいデプロイを作成するときにには、[Notify components] (コンポーネントに通知) がデフォルトで選択されています。

    9. [Review] ページで、[デプロイ] を選択します。

      デプロイに最大 1 分かかる場合があります。

  3. AWS IoT Greengrass Core ソフトウェアは、コンポーネントプロセスからの標準出力を logs フォルダのログファイルに保存します。次のコマンドを実行し、Hello World コンポーネントが実行され、ステータスメッセージが表示されることを確認します。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    次の例に示すようなメッセージが表示されます。

    Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
    注記

    ファイルが存在しない場合、デプロイがまだ完了していない可能性があります。ファイルが 30 秒以内に表示されない場合は、デプロイが失敗している可能性があります。これは、コアデバイスに S3 バケットからコンポーネントのアーティファクトをダウンロードする権限がない場合などに発生します。次のコマンドを実行して、AWS IoT Greengrass Core ソフトウェアのログファイルを確認します。このファイルは、Greengrass コアデバイスのデプロイサービスからのログが含まれます。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.log

    type コマンドは、ファイルのコンテンツを端末に書き込みます。このコマンドを複数回実行して、ファイル内の変更を確認してください。

    PowerShell
    gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  4. コアデバイスへの新しいデプロイを作成し、コンポーネントが更新を延期していることを確認します。以下の操作を実行します。

    1. AWS IoT Greengrass コンソールのナビゲーションメニューで、[Deployments] (デプロイ) を選択します。

    2. 前のステップで、作成したか、修正したデプロイを選択します。

    3. [deployment] (デプロイ) ページで、[Revise] (修正) を選択します。

    4. [Revise deployment] (デプロイの改訂) モーダルで、[Revise deployment] (デプロイの改訂) を選択します。

    5. それぞれのステップで [Next] (次) を選んでから、[Deploy] (デプロイ) を選択します。

  5. 次のコマンドを実行して、コンポーネントのログを再度表示し、更新が延期されていることを確認します。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    次の例に示すようなメッセージが表示されます。コンポーネントは更新を 30 秒間延期するため、コンポーネントはこのメッセージを繰り返し出力します。

    Deferred update for deployment 50722a95-a05f-4e2a-9414-da80103269aa.
  6. テキストエディタを使用して仮想バッテリ残量ファイルを編集し、バッテリレベルをしきい値を超える値に変更して、デプロイが続行されるようにします。

    • Linux コアデバイスの場合は、/home/ggc_user/virtual_battery.json という名前のファイルを編集します。sudo の権限でテキストエディタを実行します。

    • Windows コアデバイスの場合は、C:\Users\ggc_user\virtual_battery.json という名前のファイルを編集します。管理者としてテキストエディタを実行します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。

    sudo nano /home/ggc_user/virtual_battery.json

    バッテリー残量を 80 に変更します。

    { "battery_level": 80 }
  7. 次のコマンドを実行して、コンポーネントのログを再度表示し、更新が承認されていることを確認します。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    次の例に示されているようなメッセージが表示されます。

    Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.