首页 > 解决方案 > Lambda 函数因 /lib64/libc.so.6 失败:未找到版本“GLIBC_2.18”

问题描述

我正在尝试在 AWS lambda 中创建一层 simple-salesforce(Python 库),并尝试从我的 python 代码中使用它(导入它)。我有windows机器。

虽然我读到编译窗口可能存在问题,所以我从 Windows 商店安装了 ubuntu1804,然后继续为 lambda 层创建 zip。(zip是为结构为“python/lib/python3.6/site-packages/......”的python文件夹创建的)

我正在使用 Python 3.6。我浏览了几篇关于这个问题的文章,但可以找到任何解决方案。这个视频帮助我在 AWS 中成功地为 Pandas 和请求创建了一个层,并对我使用的 pip 命令进行了细微调整

sudo python3 -m pip install simple-salesforce -t build/python/lib/python3.6/site-packages

我用于简单销售人员的完全相同的过程,我得到以下错误如下:

无法导入模块“lambda_function”:/lib64/libc.so.6:未找到版本“GLIBC_2.18”(/opt/python/lib/python3.6/site-packages/cryptography/hazmat/bindings/_rust 需要.abi3.so)

编辑:-我尝试使用 .whl 的另一种方法虽然没有给出上述错误,但给出了“找不到请求模块”的错误,当我添加请求模块层时,它给出了错误 authlib not found。(如果我评论salesforce相关的事情,请求层工作正常。甚至尝试上传作为简单层相同的authlib问题)

编辑:我使用的 Lambda 代码如下

the code I am using is basic code which doesnt have any logic with empty imports

import json
import pandas as pd
import requests as req
from simple_salesforce.format import format_soql

def lambda_handler(event, context):
    #TODO

标签: python-3.6aws-lambda-layerssimple-salesforce

解决方案


我将代码更改为不使用 simple_salesforce 库,并使用请求(使用 Salesforce REST API)计算出所有逻辑。这不是很理想,但我可以让它工作,因为我有一些交付要满足。


推荐阅读