我有两个STM32 Discovery工具包(由AWS推荐),我想使用Amazon FreeRTOS将它们连接到Greengrass组。我浏览了有关Amazon FreeRTOS(https://docs.aws.amazon.com/freertos/latest/userguide/gg-demo.html)和Greengrass演示的文档。 我根据教程中的描述添加Thing,Certificates和policy,并将其添加到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.
任何帮助和建议都会非常感激。 问候, Keivan
P.S:我创建了一个具有核心和成功部署的Greengrass小组。答案 0 :(得分:0)
您在问题中没有明确说明您已经created a Greengrass Core,并在添加了您的AWS IoT" Thing&之后至少完成了一次成功configuration deployment #34;到格林格拉斯集团。这些是您尝试运行的演示应用程序的先决条件。
完成上述操作后,我建议您使用README.md for the Amazon FreeRTOS Greengrass Connectivity demo app的“高级诊断”部分中的调试步骤。概要:这些步骤使用AWS command-line interface确认您的AWS IoT“Thing”与您的Greengrass Core之间的配置和信任。
如果您能够在没有服务器断开连接的情况下进行MQTT连接并订阅AWS IoT代理,那么您的结论是您的Amazon FreeRTOS设备具有有效的客户端证书和至少一个基本策略附在它上面。但是,除其他外,上述高级诊断步骤将帮助您确认您的Thing证书策略是否足以用于Greengrass演示。无论如何,我怀疑你的问题是Greengrass部署在这一点上。
答案 1 :(得分:0)
问题解决了! 导致此问题的重要原因有两个: 1-在绿色草图设置下,应激活“自动检测并覆盖连接信息”。 2-附加到设备的策略可能导致此问题。它应该包含:
{
"Effect": "Allow",
"Action": [
"greengrass:*"
],
"Resource": [
"*"
]
}
此致 Keivan