【发布时间】:2019-02-15 12:14:41
【问题描述】:
我在 aws lambda 上测试时遇到以下错误消息。
Unable to import module 'lambda_handler': No module named 'cx_Oracle'
这个 lambda 由 python 代码组成,但特别适用于我的本地主机。
另外,我在同一级别的 lambda_handler.py 文件路径上执行了pip install cx_Oracle -t ./ 命令,上传的 zip 文件的文件路径低于该路径。
./lambda_handler.py
./cx_Oracle.cp36-win_amd64.pyd
./cx_Oracle-6.4.1.dist-info/*
./cx_Oracle-doc/*
我不明白为什么 lambda_handler 只能在 lambda 函数中找到 cx_Oracle library。
我错过了什么?
import cx_Oracle
import boto3
from docutils.nodes import row
def 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
}
【问题讨论】:
-
不要忘记 Oracle Instant Client 和匹配的 VS Redistributable。这可能无法解决眼前的问题,因为我预计会出现不同的错误消息。
标签: python amazon-web-services aws-lambda cx-oracle