我在 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
提交
取消