导入自定义Python至AWS Lambda层时遇NameError问题求助
解决AWS Lambda Layers中自定义函数调用的NameError问题
你遇到的问题是因为add_nums函数属于test_function模块的成员,直接调用函数名会找不到它——它不在当前代码的命名空间里。有两种简单的解决方式:
方式一:通过模块名调用函数
在Lambda代码中导入模块后,调用函数时带上模块前缀:
import test_function def lambda_handler(event, context): print(test_function.add_nums(4,5)) # 其他业务逻辑...
方式二:直接导入目标函数
如果不想每次都写模块名,可以直接从模块中导入add_nums函数:
from test_function import add_nums def lambda_handler(event, context): print(add_nums(4,5)) # 其他业务逻辑...
另外确认一下你的打包结构是正确的——python/test_function.py的层级完全符合Lambda Layers的要求,Lambda会自动把Layers中的python目录添加到Python的模块搜索路径,所以import test_function不会报错,只需要调整函数调用的方式即可。
内容的提问来源于stack exchange,提问作者Chuck
相关产品推荐
相关产品推荐

