我试图通过lambda函数连接到基于Oracle引擎的RDS,并执行简单的选择查询。我已经完成了以下操作:
~/lambda/lib
libaio.so.1
和libaio.so.1.0.1
文件。libaio.so.1
到~/lambda/lib
libaio.so.1
在libaio.so
中以~/lambda
的形式创建ln -s libaio.so.1.0.1 libaio.so
的共生链接(但是打开时的libaio.so
表示链接已断开,libaio.so .1.0.1不存在)cx_Oracle
(~/lambda
)中安装了pip install cx_Oracle -t .
名为index.py的Lambda函数(存储在~/lambda
中)如下:
import os
import json
import cx_Oracle
def handler(event, context):
message = ""
cursor = None
connection = None
try:
connection = cx_Oracle.connect("username", "password", "endpoint_of_rds_instance:port_no/ORCL")
cursor = connection.cursor()
cursor.execute("SELECT LOGIN-ID from USER_INFO where USER_ID=3972")
except Exception as e:
message += " {Error in connection} " + str(e)
finally:
if cursor:
cursor.close()
if connection:
connection.close()
return {'message' : message}
使用zip -r9 ~/upload.zip *
由于文件大小限制为10 MB,并且此zip文件为96 MB,因此无法直接上传zip。使用S3时,它表示超过解压缩文件的大小限制,因为我的lambda文件夹的大小超过200 MB。