【发布时间】:2021-04-03 13:54:05
【问题描述】:
我有一个包含多个 Lambda 的 SAM 应用程序和一些我想在它们之间共享的实用程序代码。使用 zip 文件打包 Lambda 时,可以使用 Lambda 层进行代码共享。但是,根据 AWS 文档,使用容器时不支持 Lambda 层。
定义为容器图像的函数不支持层。构建容器镜像时,可以将首选运行时和依赖项打包为镜像的一部分
我尝试将我的依赖项复制到一个单独的 docker 映像中,然后从我的 lambda dockerfile 中的该映像中提取,这在 AWS 博客文章 Working with Lambda layers and extensions in container images 中提出了建议。但是,在尝试调试或运行 sam local invoke 时,我只会收到 Unable to import module 'app': No module named '<my_dependency>' 错误。我在最终图像中验证了依赖项位于我的 python lambda 的 /opt/python/ 目录中,并尝试了其他文件夹结构,但没有运气。
有没有人能够让它工作?
【问题讨论】:
标签: amazon-web-services docker aws-lambda containers sam