I installed the aws-iot-greengrass snap on ubuntu-core in a virtualbox, and successfully connected it to the aws-iot cloud. However I identified the following potential issues.
Do you know how to run NodeJS 6.10 lambdas on the aws-iot-greengrass snap’s current version ? Because from my tests, NodeJS 6.10 lambdas deployed to the snap can’t run since NodeJS 6.10 is missing from $PATH.
Is there a plan to release the 1.9.0 version of the snap and update the interface to NodeJS 8.10, before the deprecation of NodeJS 6.10 lambdas on AWS ? Otherwise It may soon be impossible to push new NodeJS lambdas to and run them at all on the aws-iot-greengrass snap.
The nodejs lambdas are successfully pushed but can’t run on the Greengrass core (at least on my environment)
I successfully pushed and ran a Python 2.7 lambda on the device. However there is no way to do the same successfully with NodeJS 6.10. On the greengrass core, nodejs6.10 is missing from $PATH thus preventing the lambda to run. The following errors show in the
[2019-05-19T07:46:55.967Z][INFO]-Starting worker arn:aws:lambda:eu-west-1:919510806644:function:Greengrass_HelloWorld:4 [2019-05-19T07:46:56.045Z][ERROR]-Runtime execution error: unable to start lambda container: failed to run container sandbox: container_linux.go:344: starting container process caused "exec: \"nodejs6.10\": executable file not found in $PATH" [2019-05-19T07:46:56.047Z][ERROR]-failed to start worker d5260972-1b3a-483d-7df8-7c7e27e2e90f: process start failed: failed to run container sandbox: container_linux.go:344: starting container process caused "exec: \"nodejs6.10\": executable file not found in $PATH"
- an issue with my setup : adding the desired runtime to the $PATH is undocumented or hard to find. In that case, would you please point me to the right direction to configure this ?
- an issue with the aws-iot-greengrass snap : the
snapcraft.yamldoesn’t seem to reference the runtimes though
- an issue with the greengrass-support interface : the
snapcraft.yamlreferences the runtimes but doesn’t register it to the $PATH explicitly. I’m too new to snaps to understand it well, so I guess it must be done in a config batch somewhere at install time.
It may soon be impossible to push new NodeJS lambdas at all to the aws-iot-greengrass snap
AWS has since long stated that their support for NodeJS 6.10 will be dropped by the end of the month (2019-05) in favour of NodeJS 8.10. After that, legacy NodeJS 6.10 lambdas will continue to be executed for some time but it will be impossible to publish new ones.
From my tests, AWS IOT Core checks that the NodeJS version of the cloud lambda matches the Greengrass core runtime version before deploying it to the core.
In that case, it is urgent to release the 1.9.0 version of the aws-iot-greengrass snap and update the greengrass-support interface with NodeJS 8.10, since the current 1.8.0 greengrass SDK is only able to run NodeJS 6.10 lambdas. I couldn’t identify another place but this forum to post this potential issue.
Thanks for your help.