我在 aws lambda 上测试时遇到了以下错误消息。Unable to import module 'lambda_handler': No module named 'cx_Oracle'这个 lambda 由 python 代码组成,但在我的本地主机上特别有效。另外,我pip install cx_Oracle -t ./在 lambda_handler.py 文件路径的同一级别上执行命令,并且上传的 zip 文件的文件路径在此之下。./lambda_handler.py./cx_Oracle.cp36-win_amd64.pyd./cx_Oracle-6.4.1.dist-info/*./cx_Oracle-doc/*我不明白为什么 lambda_handler 只能cx_Oracle library在 lambda 函数中找不到。我错过了什么?import cx_Oracleimport boto3from docutils.nodes import rowdef lambda_handler(event, context): url = 'myOracleUrl' user = 'myOralceUserId' pwd = 'myOraclePwd' con = cx_Oracle.connect(user + '/' + pwd + '@' + url) cur = con.cursor() cur.execute("select 1 from dual") cur.close() con.close() return { "statusCode": 200, "body": context.invoked_function_arn }
3 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
cx_Oracle
不仅需要pip install
,还需要轮子依赖的本机 Oracle 客户端。Lambda 函数在具有有限选择的本机库的 EC2 上运行。就其价值而言,几乎所有 RDBMS 都会遇到同样的问题——PostgreSQL、MySQL 等。
有关更多信息,请参阅本文:http : //kb.sites.apiit.edu.my/knowledge-base/articles/aws/aws-chalice-deployment-with-oracle-vendor/
请注意,它用于基于 Chalice 的部署,但底层要求是相同的。
添加回答
举报
0/150
提交
取消