![](/img/trans.png)
[英]Unable to import module 'lambda_function': No module named xlrd
[英]Unable to import module 'lambda_function': No module named 'cx_Oracle'
我正在嘗試在 Python 中創建一個 AWS Lambda 函數來連接到 Oracle 數據庫(目前,只是一個測試連接)。 但是我沒有成功完成流程。 每次我看到這個錯誤信息:
{ "errorMessage": "Unable to import module 'lambda_function': No module named 'cx_Oracle'", "errorType": "Runtime.ImportModuleError" }
我在 Ubuntu WSL 上創建了一個 virtualenv,在 lib 文件夾上安裝 Oracle InstantClient,通過 pip 在 sites-package 文件夾安裝 cx_oracle,並在同一個文件夾中創建我的 lambda 函數,壓縮所有內容,上傳到我的 S3 並運行.
誰能幫我?
我的代碼:
import cx_Oracle
# Yeah, you need this
with open('/tmp/HOSTALIASES', 'w') as f: f.write(f'{os.uname()[1]} localhost\n')
# Oracle away!
def lambda_handler(event, context):
return str(
cx_Oracle.connect(
'username',
'password',
cx_Oracle.makedsn(
'rds.amazonaws.com', 1521, 'SOME_SID',
)
).cursor().execute('SELECT 42 FROM DUAL').fetchone()
)
我的網站包文件夾:
** 我的 lambda 配置:**
AWS Lambda 與 Amazon Linux 一起運行,因此您需要 cx_Oracle 的兼容庫,在本例中為manylinux.whl
只需下載 whl,解壓縮,然后將 .so 文件復制到您的lib文件夾中。
這樣 Lambda 就會識別 cx_Oracle。
文件夾結構應如下所示:結構
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.