【以下的问题经过翻译处理】 介绍
使用Greengrass V2
aws.greengrass.ShadowManager
v2.2.1
aws.greengrass.Nucleus
v2.7.0
我构建了一个自定义组件,用于与ShadowManager通信来更新设备阴影。 ShadowManager的配置如下:
{
"strategy":{
"type":"realTime"
},
"synchronize":{
"coreThing":{
"classic":true,
"namedShadows":[
"notRelevant"
]
},
"direction":"betweenDeviceAndCloud"
}
}
问题
我的自定义组件尝试执行以下操作:
- 订阅
$aws/things/my_thing/shadow/delta/update
并使用回调函数。
- 将设备的“reported”值更新为与IoT Core中的“desired”值不同的某些默认值。
- 步骤2中的更新会触发步骤1中的回调,该回调使用“desired”值更新设备的“reported”值。
我希望最终云端的“desired”和“reported”值是一致的,但最终出现了“reported”中的默认值,如下所示:
其中“transmit_rate”为15,“sample_rate”为2.5是默认值,“transmit_rate”为10,“sample_rate”为1是期望的。
我所发现的
我检查了我们的应用程序软件日志,并确认ShadowManager
接受了两个阴影更新请求。第一个更新将阴影更新为默认值,第二个更新将阴影更新为期望的值。然后,我检查了greengrass.log
,并看到突出显示的“更新同步信息”日志似乎表明两个更新按反向顺序同步(版本278先,版本277后)。这似乎