步驟 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主控台瀏覽功能表中,選擇 [元件]。

    2. 在 [件] 頁面上,選擇 [我的元件] 索引標籤,然後選擇com.example.BatteryAwareHelloWorld

    3. com.example.BatteryAwareHelloWorld頁面中,選擇部署

    4. 從 [新增至部署] 中,選擇要修訂的現有部署,或選擇建立新部署,然後選擇 [一步]。

    5. 如果您選擇建立新部署,請為部署選擇目標核心裝置或物件群組。在 [指定目標] 頁面的 [部署目標] 下,選擇核心裝置或物件群組,然後選擇 [下步]。

    6. 在 [選取元件] 頁面上,確認已選取com.example.BatteryAwareHelloWorld元件,然後選擇 [下一步]。

    7. 在 [設定元件] 頁面上,選取 com.example.BatteryAwareHelloWorld,然後執行下列動作:

      1. 選擇 設定元件

      2. 設定com.example.BatteryAwareHelloWorld強制回應的組態更新下,在要合併的組態中,輸入下列組態更新。

        { "BatteryThreshold": 70 }
      3. 選擇 [確認] 關閉強制回應,然後選擇 [下一步]。

    8. 在 [確認進階設定] 頁面的 [部署原則] 區段的 [元件更新原則] 下,確認已選取 [通知元件]。建立新部署時,依預設會選取「通知元件」。

    9. Review (檢閱) 頁面,選擇 Deploy (部署)

      部署最多可能需要一分鐘的時間才能完成。

  3. AWS IoT Greengrass核心軟件將標準輸出從組件進程保存到文件夾中的日誌文件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核心軟體記錄檔。此檔案包含來自 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主控台導覽功能表中,選擇「部署」。

    2. 選擇您先前建立或修訂的部署。

    3. 在部署頁面上,選擇「修訂」。

    4. 在「修訂部署」模式中,選擇「修訂部署」。

    5. 在每個步驟中選擇 [一步],然後選擇 [部署]。

  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.