我一直在努力。這裏是我的解決方案(有可能是一個更好的方法):在你的文件系統
設置您的輔助函數是這樣的:
pathToSomewhere/my_helper/helper_functions.py pathToSomewhere/my_helper/__init__.py pathToSomewhere/setup.py
其中__init__.py
是:
from .helper_functions import *
和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='[email protected]',
packages=['my_helper'],
install_requires=['boto3'],
zip_safe=False)
現在讓我們打包my_helper
。從pathToSomewhere/
運行:
python setup.py sdist
我假設你已經知道如何創建和上傳虛擬環境來運行你的lambda函數。如果沒有,請告訴我。
現在讓我們將my_helper
安裝到您的lambda函數的虛擬環境中。讓我們假設你的虛擬環境被稱爲worker_env
./worker-env/bin/pip install file://pathToSomewhere/my_helper
現在拉上worker-env
您的實際拉姆達腳本並上傳。
Lambda包的大小限制。您應該在zip包中包含適合該大小的所有模塊。您可以在s3中存儲其餘的模塊並從那裏導入。 – MYGz
如果我將模塊包含在所有的Lambda包中,然後我想要更改模塊中的某些內容,那麼我將不得不更新所有的Lambda包,對吧? – Sibtain
包括來自zip包的模塊將會更有效率,我猜。您可以編寫一個小腳本來更新所有軟件包中的模塊。檢查此:http://docs.aws.amazon.com/cli/latest/reference/lambda/update-function-code.html – MYGz