使用相同库的多个 AWS Lambda 函数

tro*_*jan 7 python amazon-web-services aws-lambda

我正在为我的 Android 应用程序后端编写 AWS Lambda 函数。我在 AWS 上的 python 中有多个 Lambda 函数,它们需要相同的库。例如,我需要访问数据库,因此我在所有 lambda 函数中使用 pymysql 库。但我不确定我这样做是否正确。

我是否必须将这些库包含在我部署的每个函数包中,或者是否有更好的方法可以引用我在上一个函数中使用的库?

我正在关注教程:在 Amazon VPC 中访问 Amazon RDS。我有2个功能。我将每个函数及其依赖项单独上传到 zip 中。Zip 包含代码和库。图书馆占据了大部分空间,使得拉链尺寸变大。现在第二个函数也需要相同的库,因此再次使用相同的库制作 zip 感觉是错误的。

另外,文档中提到的一些链接也很有帮助。我在文档中没有找到它。

dmi*_*igo 0

现在Lambda 层已发布,您可以轻松地在 Lambda 函数之间共享库和代码。

您可以为图层创建 zip 文件,其方式与为函数创建 zip 文件的方式几乎相同。
要共享pymysql包,您需要基于以下函数创建 Lambda 层:

pymysql-bundle.zip/
  python/lib/python3.7/site-packages/pymysql
Run Code Online (Sandbox Code Playgroud)

然后,您可以从 Lambda 函数的代码中引用它,如下所示:

from pymysql import ...
Run Code Online (Sandbox Code Playgroud)