【以下的问题经过翻译处理】 我正在尝试在Shadow中设置数据值,并让我的自定义组件在核心设备上获取该值。但是我遇到了组件无法获取该值的问题。在排除故障时,我认为新的Shadow值根本不会到达组件。我回退并查看了ShadowManager和云同步来排除每个步骤的问题。
我的ShadowManager配置如下:
{
"strategy": {
"type": "realTime"
},
"synchronize": {
"coreThing": {
"classic": true
},
"namedShadows": [
"test",
"dsvvefvfq"
],
"direction": "betweenDeviceAndCloud"
}
}
我理解这个配置是,如果classic shadow或两个命名shadow(test和dsvvefvfq)在核心设备或云端(云->核心)或(核心->云)上更改,则立即进行同步。
然后,我在thing中找到中编辑名为“dsvvefvfq”的shadow。当我观察日志文件时,我立即看到:
2022-09-27T16:56:55.626Z [INFO] (pool-2-thread-145) com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl: Updating sync info. {thing name=SliceOfPi, shadow name=dsvvefvfq, cloud-version=14, local-version=9}
2022-09-27T16:56:55.630Z [INFO] (pool-2-thread-145) com.aws.greengrass.shadowmanager.sync.strategy.BaseSyncStrategy: sync. Executing sync request. {Type=CloudUpdateSyncRequest, thing name=SliceOfPi, shadow name=dsvvefvfq}
奇怪的是,直到我再次编辑shadow,我才收到“ Successfully updated shadow”的消息。我期望看到一系列遵循此模式的日志条目: