无法导入模块'lambda_function':没有名为'flatten_json'的模块

2022-02-21 00:00:00 python aws-lambda aws-lambda-layers

问题描述

运行lambda代码时出现以下错误,我使用的是名为

的库
from flatten_json import flatten

我尝试寻找lambda层,但在网上找不到,请告诉我以前是否有人使用过此层或建议其他选择


解决方案

有两个选项可供选择

选项1)您可以使用部署包将函数代码部署到Lambda。

  • 部署包(例如zip)将包含您的函数代码和用于运行函数代码的任何依赖项。
  • 因此,您可以将flatten_json作为代码打包到Lambda。
  • 查看AWS文档中的Creating a function with runtime dependencies页,它解释了拥有请求库的使用情形。在您的方案中,库应该是flatten_json

选项2)创建具有所需库依赖项的层,在您的情况下只需flatten_json。然后将该层附加到您的Lambda。

  • 查看AWS提供的creating and sharing lambda layers指南。

如何在%1)和%2)之间做出决定?

  • 如果您只需要该Lambda中的依赖项,请使用选项1)。无需创建额外的创建层步骤。
  • 如果您有一些想要跨不同lambda共享的公共代码,那么层很有用。因此,如果您还需要在其他lambda中访问该库,那么最好有一个可以附加到不同lambda的层[选项2)]。

相关文章