测试通信(禁用了设备同步) - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 Amazon IoT Greengrass V1 维护策略。在此日期之后,将 Amazon IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能支持其他平台

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

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

  1. 确保您的计算机和 Amazon IoT Greengrass 核心设备使用相同的网络连接到互联网。

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

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

      ping IP-address

      类似于以下内容的输出表示计算机和 Amazon IoT Greengrass 核心设备之间成功通信(丢包 0%):

      成功的 ping 命令输出。
      注意

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

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

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

    1. Amazon IoT 控制台导航窗格中,选择设置

    2. 设备数据端点下,记下 端点的值。您可以使用此值在以下步骤中替换命令中的 AWS_IOT_ENDPOINT 占位符。

  3. 在您的计算机(不是 Amazon IoT Greengrass 核心设备)上,打开两个命令行(终端或命令提示符)窗口。一个窗口代表 GG_Switch 客户端设备,另一个窗口代表 GG_ TrafficLight 客户端设备。

    1. 从 GG_Switch 客户端设备窗口中,运行以下命令。

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

      • AWS_IOT_ENDPOINT 替换为您的端点。

      • 将这两个交换机CertId实例替换为您的 GG_Switch 客户端设备文件名中的证书 ID。

      cd path-to-certs-folder python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
    2. 在 GG_ TrafficLight 客户端设备窗口中,运行以下命令。

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

      • AWS_IOT_ENDPOINT 替换为您的端点。

      • 将这两个轻型CertId实例替换为您的 GG_ TrafficLight 客户端设备文件名中的证书 ID。

      cd path-to-certs-folder python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight

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

      GG_Switch 输出:

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

      GG_ TrafficLight 输出:

      与 GG_ TrafficLight 关联的输出的屏幕截图。

    首次执行时,每个客户端设备脚本都会运行 Amazon IoT Greengrass 发现服务以连接到 Amazon IoT Greengrass 核心(通过 Internet)。在客户机设备发现并成功连接到 Amazon IoT Greengrass 核心之后,可以在本地执行 future 操作。

    注意

    lightController.pytrafficLight.py 脚本将连接信息存储在 groupCA 文件夹中,该文件夹与脚本在同一文件夹中创建。如果您收到连接错误,请确保 ggc-host 文件中的 IP 地址与您在此步骤中为核心配置的单个 IP 地址端点匹配。

  4. 在 Amazon IoT 控制台中,选择您的 Amazon IoT Greengrass 群组,选择客户端设备选项卡,然后选择 GG_ TrafficLight 以打开客户端设备 Amazon IoT 的事物详细信息页面。

  5. 选择设备影子选项卡。在 GG_Switch 更改状态后,该影子不应有任何更新。这是因为 GG_ 设置TrafficLight 为禁用与云的阴影同步

  6. 在 GG_Switch (lightController.py) 客户端设备窗口中按 Ctrl + C。您应该看到 GG_ TrafficLight (trafficLight.py) 窗口停止接收状态更改消息。

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