Greengrass 发现演示应用程序无法正常工作

Greengrass discovery Demo Application is not working

我有两个 STM32 Discovery 套件(AWS 推荐),我想使用 Amazon FreeRTOS 将它们连接到 Greengrass 组。我浏览了有关 Amazon FreeRTOS (https://docs.aws.amazon.com/freertos/latest/userguide/gg-demo.html) 和 Greengrass 演示的文档。 我根据教程中的描述添加事物、证书和策略,并将事物添加到 greengrass 组。我还从 AWS 控制台的软件部分下载了 "Greengrass discovery for ST ",更新了 wifi 用户名和密码,"aws_clientcredentials.h" 中的物联网端点,还更新了 "aws_clientcredentials_keys.h" 中的证书。 根据文档,订阅 "freertos/demos/ggd" 主题会给 IoT 测试一些消息,但事实并非如此。 有人有同样的经历吗?

控制台的输出是:

0 0  Starting key provisioning...
1 3  Write root certificate...
2 7  Write device private key...
3 15  Write device certificate...
4 23  Key provisioning done...
5 608  WiFi module initialized.
6 4010  WiFi connected to AP defabe Engineering_EXT.
7 4015  IP Address acquired 192.168.178.50
8 4020  Attempting automated selection of Greengrass device
9 34517  About to close socket.
10 34756  Socket closed.
11 34759  JSON parsing: Couldn't find certificate
12 34764  Auto-connect: Failed to retrieve Greengrass address and certificate.

非常感谢任何帮助和建议。 问候, 凯文

P.S:我创建了一个具有核心且成功部署的 Greengrass 组。

您在将 AWS IoT "Thing" 添加到 Greengrass 组后没有在您的问题中明确表示您已经 created a Greengrass Core, and completed at least one successful configuration deployment 了。这些是您尝试 运行 的演示应用程序的先决条件。

完成上述操作后,我建议您使用 README.md for the Amazon FreeRTOS Greengrass Connectivity demo app. Synopsis: those steps confirm the configuration and trust between your AWS IoT “Thing” and your Greengrass Core using the AWS command-line interface 的高级诊断部分中的调试步骤。

如果您能够在服务器不断开您连接的情况下进行 MQTT 连接并订阅 AWS IoT 代理,则可以断定您的 Amazon FreeRTOS 设备具有有效的客户端证书并且至少附加了一个基本策略。但是,除其他事项外,上述高级诊断步骤将帮助您确认您的事物证书策略是否足以用于 Greengrass 演示。无论如何,我怀疑您的问题此时与 Greengrass 部署有关。

问题已解决! 有两件重要的事情导致了这个问题: 1- 在 greengrass 设置下,应激活“自动检测和覆盖连接信息”。 2- 附加到设备的策略可能会导致此问题。它应该包含:

{
  "Effect": "Allow",
    "Action": [
      "greengrass:*"
    ],
    "Resource": [
      "*"
    ]
}

它需要正确的资源和操作。