本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在本部分中,您将组件部署到核心设备以测试其功能。在核心设备上,您创建虚拟电池电量文件以模拟真实电池。然后,您创建其他部署并观察核心设备上的组件日志文件,以查看组件延迟并确认更新。
部署和测试可延迟更新的 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 }
-
选择确认以关闭模式,然后选择下一步。
-
-
在确认高级设置页面上部署策略部分的组件更新策略下面,确认已选择通知组件。在您创建新部署时,默认会选择通知组件。
-
在 检查 页上,选择 部署。
完成部署可能最多需要 1 分钟。
-
-
AWS IoT Greengrass Core 软件将组件进程中的 stdout 保存到
logs
文件夹中的日志文件。运行以下命令,验证 Hello World 组件是否正在运行并打印状态消息。sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
您应该会看到类似于以下示例的消息。
Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
-
在核心设备上创建新的部署,以验证组件是否延迟更新。执行以下操作:
-
在 AWS IoT Greengrass 控制台
导航菜单中,选择部署。 -
选择您之前创建或修订的部署。
-
在部署页上,选择修订。
-
在修订部署模式中,选择修订部署。
-
在每步中选择下一步,然后选择部署。
-
-
运行以下命令,再次查看组件的日志,并验证组件是否延迟更新。
sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
您应该会看到类似于以下示例的消息。组件将更新延迟 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 }
-
-
运行以下命令,再次查看组件的日志,并验证组件是否确认更新。
sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
您应该会看到类似于以下示例的消息。
Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.