如何在AWS Lambda中导入.so文件(共享库)?

rea*_*dul 6 python ctypes aws-lambda amazon-ami

我正在尝试使用层在 Lambda 上部署 .so 文件。这些文件是使用 Amazon Linux docker 映像编译的。我将图层以 zip 格式上传,所需文件位于 /lib/ 中。但是我的代码无法读取这些文件。

from ctypes.util import find_library
def lambda_handler(event, context):
    liblept=find_library('lept') # present in /opt/lib
    libpng=find_library('png') # present in Lambda's default library
    print(liblept) # gives None
    print(libpng) # gives libpng.so.4
Run Code Online (Sandbox Code Playgroud)

我尝试将 /opt/lib 添加到LD_LIBRARY_PATH环境变量,但它不起作用。事实证明 LD_LIBRARY_PATH 默认有 /opt/lib -

print(os.environ.get("LD_LIBRARY_PATH"))

Run Code Online (Sandbox Code Playgroud)

输出

/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib
Run Code Online (Sandbox Code Playgroud)