Sib*_*ain 5 python amazon-s3 amazon-web-services aws-lambda
我有几个 AWS Lambda 函数。所有这些函数都使用一些常见的辅助函数。我将这些辅助函数放在一个名为helper_functions.py. 我想在我所有的 AWS Lambda 函数中导入这个模块。我找不到存储此模块 ( helper_functions.py) 的位置,因此当我更改此模块时,我无需更改我的 Lambda 函数中的任何内容。
我想到的一些选项是:
在 AWS S3 上上传模块,然后从 S3 开始将其加载到每个 Lambda 函数中并使用这些函数。(如果可能的话)
编写一些脚本(我还没有弄清楚),将模块与 Lambda 函数的 Python 文件一起打包到一个 zip 文件中,并将其上传到 AWS Lambda
请提出一个更好的解决方案来管理模块并以更有效的方式导入它。
我为此挣扎了很长时间。这是我的解决方案(可能有更好的方法):
在文件系统中设置辅助函数,如下所示:
pathToSomewhere/my_helper/helper_functions.py
pathToSomewhere/my_helper/__init__.py
pathToSomewhere/setup.py
哪里__init__.py:
from .helper_functions import *
Run Code Online (Sandbox Code Playgroud)
并且setup.py是
from setuptools import setup
setup(name='my_helper',
version='0.10000',
description='My helper functions',
url='http://github.com/user/example',
license='Proprietary',
author='Null',
author_email='null@example.com',
packages=['my_helper'],
install_requires=['boto3'],
zip_safe=False)
Run Code Online (Sandbox Code Playgroud)
现在让我们打包吧my_helper。从pathToSomewhere/运行:
python setup.py sdist
Run Code Online (Sandbox Code Playgroud)
我假设您已经知道如何创建和上传用于运行 lambda 函数的虚拟环境。如果没有,请告诉我。
现在让我们安装my_helper到 lambda 函数的虚拟环境中。我们假设您的虚拟环境名为worker_env
./worker-env/bin/pip install file://pathToSomewhere/my_helper
Run Code Online (Sandbox Code Playgroud)
现在压缩worker-env并上传您的实际 lambda 脚本。
| 归档时间: |
|
| 查看次数: |
3539 次 |
| 最近记录: |