AWS IoT Greengrass
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

配置设备和订阅

当 AWS IoT Greengrass Core 连接到 Internet 时,影子可以同步到 AWS IoT。在此模块中,您首先使用本地影子而不同步到云。然后,您启用云同步。

每个设备都有自己的影子。有关更多信息,请参阅AWS IoT 开发人员指南中的适用于 AWS IoT 的 Device Shadow 服务

  1. Devices (设备) 页面上,在 AWS IoT Greengrass 组 中添加两个新设备。有关此过程的详细步骤,请参阅在 AWS IoT Greengrass 组中创建 AWS IoT 设备

    • 将设备命名为 GG_SwitchGG_TrafficLight

    • 生成并下载两个设备的一键式默认安全资源。

    • 记下设备的安全资源的文件名中的哈希组分。稍后会用到这些值。

     

    
                            显示两个设备“GG_TrafficLight”和“GG_Switch”的屏幕截图。
  2. 将为两个设备下载的证书和密钥解压缩到计算机上的单个文件夹中。例如,对每个 .tar.gz 文件运行以下命令。

    tar -xzf hash-setup.tar.gz

    注意

    在 Windows 上,可使用 7-ZipWinZip 等工具来解压缩 .tar.gz 文件。

  3. 将您在上一模块中下载的 root-ca-cert.pem 文件复制到此文件夹中。

  4. 确保将设备设置为使用本地影子。否则,请选择省略号 (),然后选择 Make local only (仅限本地)

    
                            为两个设备都突出显示了“LOCAL SHADOW ONLY (仅限本地影子)”的屏幕截图。
  5. 此模块中使用的函数代码要求您手动配置核心的终端节点。

    1. 在组配置页面上,选择 Settings (设置)

    2. 对于 Local connection detection (本地连接检测),选择 Manually manage connection information (手动管理连接信息),然后选择 View Cores for specific endpoint information (查看核心的特定终端节点信息)

    3. 选择您的核心,然后选择连接

    4. 选择编辑,确保只有一个终端节点值。该值必须是 AWS IoT Greengrass Core 设备的端口 8883 的 IP 地址终端节点(例如,192.168.1.4)。

    5. 选择 Update

  6. 将下表中的订阅添加到您的组中。例如,要创建第一个订阅,请执行以下操作:

    1. 在组配置页面中,选择 Subscriptions (订阅),然后选择 Add subscription (添加订阅)

    2. Select a source (选择源) 下面,选择 Devices (设备),然后选择 GG_Switch

    3. Select a target (选择目标) 下面,选择 Services (服务),然后选择 Local Shadow Service (本地影子服务)

    4. 选择 Next (下一步)

    5. 对于 Topic filter (主题筛选条件),输入 $aws/things/GG_TrafficLight/shadow/update

    6. 选择下一步,然后选择完成

    主题的输入方式必须与表中所示完全相同。尽管可以使用通配符来整合一些订阅,但我们不建议这种做法。有关更多信息,请参阅AWS IoT 开发人员指南中的影子 MQTT 主题

    目标 主题 备注

    GG_Switch

    本地影子服务

    $aws/things/GG_TrafficLight/shadow/update

    GG_Switch 发送更新请求来更新主题。

    本地影子服务

    GG_Switch

    $aws/things/GG_TrafficLight/shadow/update/accepted

    GG_Switch 需要知道更新请求是否被接受。

    本地影子服务

    GG_Switch

    $aws/things/GG_TrafficLight/shadow/update/rejected

    GG_Switch 需要知道更新请求是否被拒绝。

    GG_TrafficLight

    本地影子服务

    $aws/things/GG_TrafficLight/shadow/update

    GG_TrafficLight 将其状态的更新发送到更新主题。

    本地影子服务

    GG_TrafficLight

    $aws/things/GG_TrafficLight/shadow/update/delta

    本地影子服务通过增量主题将收到的更新发送到 GG_TrafficLight。

    本地影子服务

    GG_TrafficLight

    $aws/things/GG_TrafficLight/shadow/update/accepted

    GG_TrafficLight 需要知道其状态更新是否被接受。

    本地影子服务

    GG_TrafficLight

    $aws/things/GG_TrafficLight/shadow/update/rejected

    GG_TrafficLight 需要知道其状态更新是否被拒绝。

    新订阅会显示在 Subscriptions (订阅) 页面上。要查看订阅的完整主题路径,请将鼠标悬停在 Topic (主题) 列上。

    
                            “Subscriptions (订阅)”页面上的表格式数据。该页面包含“Source (源)”、“Target (目标)”和“Topic (主题)”列。

    注意

    有关 $ 符号的信息,请参阅保留主题

  7. 确保 AWS IoT Greengrass 守护程序正在运行,如 将云配置部署到核心设备 中所述。

  8. 在组配置页面上,从 Actions (操作) 中选择 Deploy (部署)

    
                突出显示了“Deploy action”(部署操作) 的“Group”(组) 页面的屏幕截图。

    这会将组配置部署到您的 AWS IoT Greengrass Core 设备。有关问题排查帮助,请参阅AWS IoT Greengrass 问题排查