首页 > 解决方案 > 是否可以在 AWS Lambda 函数之间共享一段代码?

问题描述

我正在使用 AWS Lambda 设计一个无服务器应用程序。以某种方式处理请求的函数中有一段代码。我将创建另一个函数,以相同的方式对请求数据进行相同的处理。

问题是,如果我更改其中一个 Lambda 函数中的处理函数,我将不得不复制该函数并将其粘贴到另一个 Lambda 函数中。每次我做出改变时,我都必须这样做。如果我想在两个以上的 Lambda 函数中执行相同的处理函数,这将更加麻烦。

有没有办法在 Lambda 函数之间共享代码片段,所以我可以尊重 DRY 原则?谢谢。

标签: pythonpython-3.xamazon-web-servicesaws-lambda

解决方案


现在您可以使用在您的函数之间共享库和代码。
可以在一层上建立多个功能。

您可以为层创建一个 zip 文件,其方式与为函数创建一个几乎相同。唯一的事情是所有常见的包都进入python/lib/python3.7/site-packageszip 内的目录,而你的所有代码都进入python目录。

所以如果你有这样的文件结构:

bundle.zip/
  python/
    common/
      __init__.py
      lib.py

然后从您的 Lambda 函数的代码中,您可以像这样引用它:

from common.lib import ...

推荐阅读