【发布时间】:2021-07-20 08:28:53
【问题描述】:
我创建了一个带有 template.yaml 文件的 AWS Cloudformation 堆栈,该文件实现了多个 lambda 函数。有几个 Python 函数可供部分/全部 lambda 函数使用。有没有可以存放常用功能的地方?如果您认为答案涉及层,请说明如何包含和使用 custom 函数(因为 main workflow for layers 支持通常的 pip python 站点包 - 我很好奇重用我自己的函数)。
我的项目目录:
/lambda_functions
/statemachine
samconfig.toml
template.yaml
Layer zip 看起来像这样
python/lib/python3.8/site-packages
在site-packages 中,我有我的其他模块——比如/requests——可以被lambda 函数访问(即import requests)。但是,如果我将自己的目录放在 /custom_functions 和 __init__.py 文件中 - lambda 函数找不到它。
【问题讨论】:
-
Python 中没有自定义函数。 Lambda 层也与
pip无关。只是将您的代码放在python根目录下的一个包中,将其压缩,然后部署为一个层。没问题。您甚至链接了参考。 -
你怎么称呼我定义的
def function_name(arguement1, arguement2):?这就是问题所在——我想重用我自己的函数。 -
是的,这是一个函数。现在图层有什么问题?
-
我如何
import custom_function?使用图层,我可以将请求库添加到图层,然后执行import requests。但我似乎无法用我自己的custom_functions.py -
请求库是一个包。在 python 中,包是包含
__init__.py文件的文件夹。因此,请阅读包,创建自己的包,然后愉快地导入您的函数。
标签: python amazon-web-services amazon-cloudformation aws-cli