我已经建立了一个Cloud9环境来开发和测试lambda函数。为了使环境“更清洁”,我选择使用lambda图层来指定函数的依赖关系。通过这样做,我已从环境中删除了依赖项文件夹,但我现在无法在本地进行测试。
例如,我有一个用于Stripe的python库的lambda层。我能够在Cloud9中引用lambda函数引用条带,部署函数,并远程成功测试函数。但我无法在本地运行该功能,因为我“无法导入条纹”
有没有办法通过在Cloud9中指定层ARN来测试lambda函数,这取决于lambda层?
遗憾的是,AWS Cloud9目前不支持Lambda图层。
AWS Cloud9 documentation表示不支持从AWS Resources窗口执行带有图层的功能。但是你可以在Cloud9终端窗口上使用sam local invoke
或aws lambda
。例如
sam local invoke --event input.json --template ../template.yml <function_name>
将创建一个新的docker镜像,其中包含将用于执行lambda函数的图层依赖项。 The TAG name is explained here
master:~/environment/ahdv (master) $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
samcli/lambda nodejs8.10-03eb754e9966a1a2f789d500d 6b52bcffdc2e About an hour ago 968MB
lambci/lambda python3.6 420212d009b3 3 weeks ago 1.03GB
lambci/lambda python2.7 7a436931435e 3 weeks ago 901MB
lambci/lambda nodejs4.3 c0914066d9a8 3 weeks ago 931MB
lambci/lambda nodejs6.10 74b405a65ed4 3 weeks ago 946MB
lambci/lambda nodejs8.10 edf1f613772c 3 weeks ago 960MB