选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

第 4 步:在核心设备上部署和测试组件

聚焦模式
第 4 步:在核心设备上部署和测试组件 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在本部分中,您将组件部署到核心设备以测试其功能。在核心设备上,您创建虚拟电池电量文件以模拟真实电池。然后,您创建其他部署并观察核心设备上的组件日志文件,以查看组件延迟并确认更新。

部署和测试可延迟更新的 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. 检查 页上,选择 部署

      完成部署可能最多需要 1 分钟。

  3. AWS IoT Greengrass Core 软件将组件进程中的 stdout 保存到 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
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log

    您应该会看到类似于以下示例的消息。

    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
    sudo tail -f /greengrass/v2/logs/greengrass.log
  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
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log

    您应该会看到类似于以下示例的消息。组件将更新延迟 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
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log

    您应该会看到类似于以下示例的消息。

    Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。