在实际开发中,如果在将Python代码打包成AWS Lambda函数时出现了'Python Package Deployed to AWS Lambda contains parent folder name”的警告,则意味着在打包时包含了不必要的父文件夹名称,导致AWS Lambda在导入模块时出现异常。
为了解决这个问题,有两种方法:
示例代码
假设我们的项目文件夹命名为'my_project”,其中包含一个叫做'lambda_function”的Python文件,可以通过以下命令将其打包:
cd my_project
zip -r ../my_project.zip *
这个命令将执行以下操作:
需要注意的是,在Lambda函数的部署页面中,代码存储位置应为'上传zip文件”,并上传生成的zip文件。
示例代码
import sys
sys.path.append('/var/task')
from my_module import my_function
在这个例子中,'my_module”是一个包含'my_function”函数的Python模块。在AWS Lambda的默认运行环境中,'/var/task”是默认的Python搜索路径,上传的代码会放置在此文件夹中。
这个方法要比第一个方法更加灵活,因为不必担心打包时没有留出必要的文件夹。需要注意的是,在调整导入语句之前,应先阅读AWS Lambda使用文档,了解代码模块发现和加载的要求。