AWS 上多个 API 之间的共享 Python 库

2023-12-26

我有几个使用 AWS lambda 运行的不同 python API(即 python 脚本)。标准方法是生成一个 zip 文件,其中包含开发所需的所有外部库lambda函数,然后将其上传到AWS。现在,我有一些不同 API 之间共有的函数(例如自定义 utils 函数,例如解析文本文件或日期)。目前,我正在简单地复制文件utils.py在每个 zip 文件中。然而,这种方法效率相当低(我不喜欢重复代码)。我想要一个S3装有我所有的桶.py共享文件并让我的 API 直接加载这些文件。这可能吗? 一个简单的方法是将文件下载到tmp文件夹并加载它们,但我不确定这是最好/最快的方法:

import boto3
client_s3 = boto3.client("s3")
client_s3.download_file("mybucket", "utils.py", "/tmp/utils.py")

这可以以更优雅的方式完成吗?


这实际上不是一个简单的问题需要解决。我们一直在使用拉姆达层 https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html有一段时间,它旨在解决这个问题,以便您可以共享通用代码。 lambda 层的问题是,当您更改层内的某些内容(层 + lambda 函数)时,您必须重新部署两次。这很快就会让人头疼,就 CICD 而言,您可能还会遇到问题。

我们尝试了一段时间,现在我们回到打包代码并将代码包含在 lambda 中。如果您想避免代码重复,则效率不高,但至少您不会遇到与忘记部署依赖项功能相关的所有错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS 上多个 API 之间的共享 Python 库 的相关文章

随机推荐