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

测试通信 (已禁用设备同步)

  1. 确保您的计算机和 AWS IoT Greengrass Core 设备已使用同一个网络连接到 Internet。

    1. 在 AWS IoT Greengrass Core 设备上,运行以下命令以查找其 IP 地址。

      hostname -I
    2. 在计算机上,使用核心的 IP 地址运行以下命令。可以使用 Ctrl + C 停止 ping 命令。

      ping IP-address

      类似于下面的输出指示了计算机与 AWS IoT Greengrass Core设备之间的通信成功(数据包丢失为 0%):

      
                        成功的 ping 命令输出。

      注意

      如果您无法对正在运行 AWS IoT Greengrass 的 EC2 实例进行 ping 操作,请确保该实例的入站安全组规则允许 ICMP 流量用于回显请求消息。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的向安全组添加规则

      在 Windows 主机上,在具有高级安全性应用程序的 Windows 防火墙中,您可能还需要启用一个允许入站回显请求的入站规则(例如,File and Printer Sharing (Echo Request - ICMPv4-In) (文件和打印机共享 (回显请求 - ICMPv4-In))),或创建一个。

  2. 获取您的 AWS IoT 终端节点。

    1. 在 AWS IoT Core 控制台主页上的导航窗格上选择 Settings (设置)

    2. 设置 下方,记录终端节点的值。您可以使用此值在以下步骤中替换命令中的 AWS_IOT_ENDPOINT 占位符。

      
                AWS IoT 终端节点值。

      注意

      确保您的终端节点与证书类型对应

  3. 在您的计算机(不是 AWS IoT Greengrass Core 设备)上,打开两个 command-line(终端或命令提示符)窗口。一个窗口代表 GG_Switch 设备,另一个窗口代表 GG_TrafficLight 设备。

    在首次执行时,每个设备脚本都将运行 AWS IoT Greengrass 发现服务来连接到 AWS IoT Greengrass Core(通过 Internet)。在设备发现了 AWS IoT Greengrass Core 并成功连接到它后,未来的操作可以在本地执行。

  4. 从 GG_Switch 设备窗口中,运行以下命令。

    • path-to-certs-folder 替换为包含证书、密钥和 Python 文件的文件夹的路径。

    • AWS_IOT_ENDPOINT 替换为您的终端节点。

    • 将两个 switch 实例替换为 GG_Switch 设备的文件名中的哈希值。

    cd path-to-certs-folder python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert switch.cert.pem --key switch.private.key --thingName GG_TrafficLight --clientId GG_Switch
  5. 从 GG_TrafficLight 设备窗口中,运行以下命令。

    • path-to-certs-folder 替换为包含证书、密钥和 Python 文件的文件夹的路径。

    • AWS_IOT_ENDPOINT 替换为您的终端节点。

    • 将两个 light 实例替换为 GG_TrafficLight 设备的文件名中的哈希值。

    cd path-to-certs-folder python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert light.cert.pem --key light.private.key --thingName GG_TrafficLight --clientId GG_TrafficLight

    每隔 20 秒,开关会将影子状态更新为 G、Y 和 R,并且灯会显示新状态,如下文所示。

    GG_Switch 输出:

    
                            与 GG_Switch 相关联的输出的屏幕截图。

    GG_TrafficLight 输出:

    
                            与 GG_TrafficLight 相关联的输出的屏幕截图。
  6. 在 AWS IoT Core 控制台中,选择您的 AWS IoT Greengrass 组,选择 Devices (设备),然后选择 GG_TrafficLight

    
                            突出显示了“GG_TrafficLIght”的“Devices (设备)”页面的屏幕截图。
  7. 选择影子。在 GG_Switch 更改状态后,影子状态中的该影子主题不应有任何更新。这是因为 GG_TrafficLight 设置为仅限本地影子而不是影子同步到云

  8. 在 GG_Switch (lightController.py) 设备窗口中按 Ctrl + C。您应会看到 GG_TrafficLight (trafficLight.py) 窗口停止接收状态更改消息。

    保持这些窗口打开,以便您可以在下一部分中运行这些命令。