Amazon web services Sam本地调用lambda时出现本地层错误;无法导入程序包“;

Amazon web services Sam本地调用lambda时出现本地层错误;无法导入程序包“;,amazon-web-services,aws-lambda,aws-serverless,aws-sam-cli,Amazon Web Services,Aws Lambda,Aws Serverless,Aws Sam Cli,当使用“Sam local invoke”在本地调用lambda时(该lambda也依赖于本地构建的层),函数无法找到作为该层一部分的模块 使用“sam local invoke FUNCTIONNAME”在本地调用lambda时出现错误“无法导入包”。这些包已经存在于层(压缩文件夹)中。是他们在本地测试这些LAMDA的任何方法,这些LAMDA将python依赖项压缩到层中 启动请求ID:083247f2-3011-428c-a529-50eba6d668f2版本:$LATEST 无法导入模块“

当使用“Sam local invoke”在本地调用lambda时(该lambda也依赖于本地构建的层),函数无法找到作为该层一部分的模块

使用“sam local invoke FUNCTIONNAME”在本地调用lambda时出现错误“无法导入包”。这些包已经存在于层(压缩文件夹)中。是他们在本地测试这些LAMDA的任何方法,这些LAMDA将python依赖项压缩到层中

启动请求ID:083247f2-3011-428c-a529-50eba6d668f2版本:$LATEST 无法导入模块“getnext”:没有名为“apiconfig”的模块 结束请求ID:083247f2-3011-428c-a529-50eba6d668f2 报告请求ID:083247f2-3011-428c-a529-50eba6d668f2持续时间:12毫秒计费持续时间:100毫秒内存大小:128 MB最大使用内存:19 MB

“apiconfig”模块已存在于layer.zip中

期望的是,在执行“sam local invoke”时,所有层模块都应该在某个临时位置下载,这样它就可以获取所有包并运行lamda,因此我也尝试使用--layer cache basedir dir DIRECTORY标志,但仍然得到相同的错误,尽管docker文件是在目录路径生成的。另外,即使我没有提供--skip-pull-image标志,它仍然显示requested-to-skip-pull-image。添加了--强制图像生成标志

  • 为了支持Lambda层,SAM CLI通过下载所有相关层并在开发机器上缓存它们,在本地复制AWS层进程。这发生在您第一次运行sam local invoke或第一次使用sam local start Lambda或sam local start api执行Lambda函数时
  • 当您在本地使用Lambda层时,SAM CLI中的两个特定标志非常有用
    –layer cache basedir
    –force image build
      • 为了支持Lambda层,SAM CLI通过下载所有相关层并在开发机器上缓存它们,在本地复制AWS层进程。这发生在您第一次运行sam local invoke或第一次使用sam local start Lambda或sam local start api执行Lambda函数时
      • 当您在本地使用Lambda层时,SAM CLI中的两个特定标志非常有用
        –layer cache basedir
        –force image build

        • 对于谷歌用户:

          • 请求跳过拉取图像
            在这种情况下并不重要
          • 确保本地层是目录,而不是zip文件
          • 使用lambda函数中的代码,确保模块存在于
            /opt
            文件夹中
          • 确保您在
            template.yaml中引用了正确的路径

          我按顺序做了上述操作,发现这是一个愚蠢的错误。

          对于谷歌来说:

          • 请求跳过拉取图像
            在这种情况下并不重要
          • 确保本地层是目录,而不是zip文件
          • 使用lambda函数中的代码,确保模块存在于
            /opt
            文件夹中
          • 确保您在
            template.yaml中引用了正确的路径

          我按顺序执行了上述操作,发现这是一个愚蠢的错误。

          >sam local invoke--无事件--层缓存basedir Getnext--强制映像构建GetNextFunction调用Getnext.Getnext\u处理程序(python3.6)2019-10-09 06:45:40在共享凭据文件中找到凭据:~/.aws/credentials Workflowlayer是模板构建映像中的本地层。。。请求跳过提取图像。。。装载C:\Users\skumari02\Documents\a_source\workflowapi\workflowapi\Getnext as/var/task:ro,委托运行时容器内部启动请求ID:21f943b9-3fab-45e6-a3f6-4e53e8f2e74a版本:$LATEST无法导入模块“Getnext”:没有名为“apiconfig”的模块感谢@amittn!但是我已经尝试了这两个标志,并且在--layer cache basedir路径上生成了一个新的dockerfile,但是仍然得到了相同的错误。另外,即使我没有提供--skip-pull-image标志,它仍然显示requested-to-skip-pull-image。我无法找到我是否做错了>sam local invoke--无事件--层缓存basedir Getnext--强制映像生成GetNextFunction调用Getnext.Getnext\u处理程序(python3.6)2019-10-09 06:45:40在共享凭据文件中找到凭据:~/.aws/credentials Workflowlayer是模板生成映像中的本地层。。。请求跳过提取图像。。。装载C:\Users\skumari02\Documents\a_source\workflowapi\workflowapi\Getnext as/var/task:ro,委托运行时容器内部启动请求ID:21f943b9-3fab-45e6-a3f6-4e53e8f2e74a版本:$LATEST无法导入模块“Getnext”:没有名为“apiconfig”的模块感谢@amittn!但是我已经尝试了这两个标志,并且在--layer cache basedir路径上生成了一个新的dockerfile,但是仍然得到了相同的错误。另外,即使我没有提供--skip-pull-image标志,它仍然显示requested-to-skip-pull-image。我无法发现我是否做错了什么