本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 4:在核心裝置上部署和測試元件
在本節中,您將 元件部署到核心裝置,以測試其功能。在核心裝置上,您可以建立虛擬電池電量檔案來模擬真正的電池。然後,您可以建立其他部署並觀察核心裝置上的元件日誌檔案,以查看元件延遲和確認更新。
部署和測試延遲更新的 Hello World 元件
-
使用文字編輯器來建立虛擬電池電量檔案。此檔案會模擬真正的電池。
-
在 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 }
-
-
將 Hello World 元件部署至核心裝置。請執行下列操作:
-
在AWS IoT Greengrass 主控台
導覽功能表中,選擇元件。 -
在元件頁面上,選擇我的元件索引標籤,然後選擇 com.example.BatteryAwareHelloWorld。
-
在 com.example.BatteryAwareHelloWorld 頁面中,選擇部署。
-
從新增至部署中,選擇要修改的現有部署,或選擇建立新的部署,然後選擇下一步。
-
如果您選擇建立新的部署,請選擇部署的目標核心裝置或物件群組。在指定目標頁面的部署目標下,選擇核心裝置或物件群組,然後選擇下一步。
-
在選取元件頁面上,確認已選取com.example.BatteryAwareHelloWorld元件,選擇下一步。
-
在設定元件頁面上,選取 com.example.BatteryAwareHelloWorld,然後執行下列動作:
-
選擇設定元件。
-
在設定com.example.BatteryAwareHelloWorld模態、在組態更新下,在要合併的組態中,輸入下列組態更新。
{ "BatteryThreshold": 70 }
-
選擇確認以關閉模態,然後選擇下一步。
-
-
在確認進階設定頁面的部署政策區段中,元件更新政策下,確認已選取通知元件。建立新部署時,預設會選取通知元件。
-
在 Review (檢閱) 頁面,選擇 Deploy (部署)。
部署可能需要一分鐘的時間才能完成。
-
-
Core AWS IoT Greengrass 軟體會將元件程序的 stdout 儲存到
logs
資料夾中的日誌檔案。執行下列命令,以確認 Hello World 元件執行並列印狀態訊息。您應該會看到類似下列範例的訊息。
Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
注意
如果檔案不存在,則部署可能尚未完成。如果檔案在 30 秒內不存在,則部署可能會失敗。例如,如果核心裝置沒有從 S3 儲存貯體下載元件成品的許可,就可能發生這種情況。執行下列命令以檢視 AWS IoT Greengrass Core 軟體日誌檔案。此檔案包含 Greengrass 核心裝置的部署服務日誌。
-
建立新的核心裝置部署,以確認元件延遲更新。請執行下列操作:
-
在AWS IoT Greengrass 主控台
導覽功能表中,選擇部署。 -
選擇您先前建立或修改的部署。
-
在部署頁面上,選擇修訂。
-
在修訂部署模式中,選擇修訂部署。
-
在每個步驟選擇下一步,然後選擇部署。
-
-
執行下列命令以再次檢視元件的日誌,並確認其延遲更新。
您應該會看到類似下列範例的訊息。元件會延遲更新 30 秒,因此元件會重複列印此訊息。
Deferred update for deployment 50722a95-a05f-4e2a-9414-da80103269aa.
-
使用文字編輯器編輯虛擬電池電量檔案,並將電池電量變更為超過閾值的值,以便部署可以繼續進行。
-
在 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 }
-
-
執行下列命令以再次檢視元件的日誌,並確認其確認更新。
您應該會看到類似下列範例的訊息。
Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.