使用影子更新触发Greengrass Lambda函数。

0

【以下的问题经过翻译处理】 我创建了一个Lambda,当指定的影子更新时执行某些操作。

#greengrass-cli组件列表

...

组件名称:mtdshadowconfiglambda-dev-sync_remote_config#2

版本:1.0.18

状态:运行中

配置:{"containerMode":"NoContainer","containerParams":{"devices":{},"memorySize":16000.0,"mountROSysfs":false,"volumes":{}},"inputPayloadEncodingType":"json","lambdaExecutionParameters":{"EnvironmentVariables":{}},"maxIdleTimeInSeconds":60.0,"maxInstancesCount":100.0,"maxQueueSize":1000.0,"pinned":false,"pubsubTopics":{"0":{"topic":"$aws/things/+/shadow/name/#","type":"IOT_CORE"}},"statusTimeoutInSeconds":60.0,"timeoutInSeconds":30.0}

......

我正在尝试更精细地锁定触发器:

{"topic":"$aws/things/${AWS_IOT_THING_NAME}/shadow/name/config#","type":"IOT_CORE"}

(旁边的问题是,这是否是使用环境变量AWS_IOT_THING_NAME进行的?)

因此,当我创建Lambda的新版本时,在控制台中输入此内容。但是,即使版本号已更新,将所有内容推送到设备后仍保留相同的主题:

组件名称:mtdshadowconfiglambda-dev-sync_remote_config

版本:1.0.23

状态:已完成

配置:{"containerMode":"NoContainer","containerParams":{"devices":{},"memorySize":16000.0,"mountROSysfs":false,"volumes":{}},"inputPayloadEncodingType":"json","lambdaExecutionParameters":{"EnvironmentVariables":{}},"maxIdleTimeInSeconds":60.0,"maxInstancesCount":100.0,"maxQueueSize":1000.0,"pinned":false,"pubsubTopics":{"0":{"topic":"$aws/things/+/shadow/name/#","type":"IOT_CORE"}},"statusTimeoutInSeconds":60.0,"timeoutInSeconds":30.0}

是否有一种方法可以在Lambda安装后更改其触发器?

profile picture
EXPERTE
gefragt vor 6 Monaten25 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你好,

感谢您对Greengrass V2的关注。您遇到的问题是因为您必须在部署中使用RESET配置才能使lambda使用更新的默认配置。有关更多信息,请参见https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-updatehttps://forums.aws.amazon.com/thread.jspa?messageID=972603#972603

回答您的附加问题,订阅主题完全是Lambdas的配置驱动,因此您无法使用环境变量。如果您希望进行编程订阅,则必须使用本机Greengrass V2组件(非lambda)并使用我们的IPC SDKhttps://docs.aws.amazon.com/greengrass/v2/developerguide/ipc-iot-core-mqtt.html#ipc-operation-subscribetoiotcore

谢谢,

迈克尔

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen