我已经设置了一个Cloud9环境来开发和测试lambda函数.为了使环境“更干净”,我选择使用lambda层来指定函数的依赖项。通过这样做,我已经从环境中删除了依赖文件夹,但是我现在无法在本地进行测试。
例如,我为Stripe的python库提供了lambda层。我能够在Cloud9中编写一个lambda函数,引用条带,部署该函数,并成功地远程测试该函数。但我无法在本地运行该函数,因为我“无法导入条”。
是否有方法通过在Cloud9中指定层ARN来本地测试依赖于lambda层的lambda函数?
发布于 2019-03-04 12:35:58
不幸的是,AWS Cloud9目前不支持Lambda层。
发布于 2019-05-07 18:06:00
AWS Cloud9文档说,不支持使用AWS参考资料窗口中的层执行函数。但是您可以在sam local invoke终端窗口上使用Cloud9或aws lambda。例如
sam local invoke --event input.json --template ../template.yml <function_name>将创建一个新的带有层依赖项的对接者映像,该依赖项将用于执行lambda函数。标签名在这里解释。
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发布于 2020-04-05 20:42:20
对于Lambda层的工作问题,有一个简单的解决办法,但是本地测试失败了:
在导入包含在层中的模块之前,向python路径添加一个文件夹,只需将您的层包(解压缩)放在该路径中。
下面是一个"nltk“包来自一个层的例子。此项目中的所有层都存储在Lambda文件夹本身的父目录中的“层”文件夹中,但您可以在任何级别上这样做:
import sys
import os
sys.path.append(os.path.abspath("../Layers/custom_NLTK/python"))
import nltk希望这能有所帮助!
https://stackoverflow.com/questions/54976291
复制相似问题