Sam本地调用lambda并出现本地层错误“无法导入包”

问题描述 投票:0回答:1

[当使用'Sam local invoke'来本地调用lambda时,该lambda也依赖于本地构建的图层,该函数无法找到属于该图层的模块。

我在使用'sam local invoke FUNCTIONNAME'在本地调用我的lambda时收到错误“无法导入软件包”错误。这些软件包已经存在于layer(压缩文件夹)中。他们是否有办法在本地测试这些lamda,这些lamda将python依赖项压缩到了层中。

START RequestId:083247f2-3011-428c-a529-50eba6d668f2版本:$ LATEST无法导入模块“ getnext”:没有名为“ apiconfig”的模块END RequestId:083247f2-3011-428c-a529-50eba6d668f2REPORT RequestId:083247f2-3011-428c-a529-50eba6d668f2持续时间:12 ms计费持续时间:100 ms内存大小:128 MB使用的最大内存:19 MB

'apiconfig'模块已存在于layer.zip中

[期望所有的层模块都应该在执行“ sam local invoke”的同时在某个临时位置下载,以便它可以获取所有包并运行lamda,因此我也尝试使用--layer-cache-basedir DIRECTORY标志但是仍然会出现相同的错误,尽管在目录路径下生成了docker文件。而且,即使我没有提供--skip-pull-image标志,它仍然显示请求跳过拉图像。也添加了--force-image-build标志error

amazon-web-services aws-lambda aws-serverless aws-sam-cli
1个回答
0
投票
  • 为了支持Lambda层,SAM CLI通过下载所有关联的层并将其缓存在您的开发计算机上,在本地复制AWS层过程。第一次运行sam local invoke或第一次使用sam local start-lambda或sam local start-api执行Lambda函数时,就会发生这种情况
  • 当您在本地使用Lambda图层–layer-cache-basedir–force-image-build aws docs时,SAM CLI中的两个特定标志会很有帮助>
© www.soinside.com 2019 - 2024. All rights reserved.