![](/img/trans.png)
[英]How to make all common functions centralised in AWS Lambda Function (Python)?
[英]How to make an Oracle Database connection from an AWS Lambda function (Python)
如何为 AWS Lamba 函数构建上传包以连接到 Oracle RDS 数据库? lambda 语言是 Python 3.6。 我的开发环境是 Windows 而不是linux。
当我尝试时,出现错误:
DPI-1047: 64-bit Oracle Client library cannot be loaded: "libaio.so.1: cannot open shared object file: No such file or directory
这很奇怪,因为据我了解,libaio.so 是亚马逊 linux 系统的一部分,因此应该找到正确版本的 libaio.so。
我执行了以下步骤来构建我的 lambda 包:
/lib
/
/
LD_LIBRARY_PATH
包含/lib
并且环境变量TNS_ADMIN
指向目录/
这是在 lambda 内部实现的 python 代码片段:
oraclePath = os.environ['LAMBDA_TASK_ROOT'] + '/lib'
if oraclePath not in os.environ['LD_LIBRARY_PATH'].split(':'):
os.environ['LD_LIBRARY_PATH'] = oraclePath + ':' + os.environ['LD_LIBRARY_PATH']
if ('TNS_ADMIN' not in os.environ) or (os.environ['TNS_ADMIN'] != os.environ['LAMBDA_TASK_ROOT']):
os.environ['TNS_ADMIN'] = os.environ['LAMBDA_TASK_ROOT']
libclntsh.so.18.1
覆盖复制到libclntsh.so
。 同样对于libocci.so
和libclntshcore.so
以下是两个类似的 SO 问题,其答案对我不起作用,或不适用于我的情况:
AWS Lambda 无法连接到 Oracle Instant Client Paul 的解决方案在上面的第 5 步中完成。
在我的情况下,带有 Oracle Thomas 解决方案的AWS Python Lambda对我没有帮助。 这些是linux命令。 我需要一个 Windows 解决方案。
或许我需要问一下:windows 开发人员如何获取适用于 Amazon Linux Lambda 环境的正确版本的 libaio.so.1,该文件应该放在 lambda 包中的什么位置? 任何涉及 bash 命令的解决方案都没有帮助。
由于我遇到了同样的问题,您可以从这里找到所需的库: https : //pkgs.org/download/libaio (例如 Arch linux 包)
然后将该包中的文件提取到 lambda 包的 /lib 文件夹中。
下载适用于 Windows x64 的即时客户端基本精简版 .. 该错误将得到解决! 因为你已经下载了 linux 版本并在 windows 上使用它.. 你得到了那个错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.