Tan*_*kar 7 python-3.6 simple-salesforce aws-lambda-layers
我正在尝试在 AWS lambda 中创建一个 simple-salesforce (Python 库)层,并尝试从我的 python 代码中使用它(导入它)。我有 Windows 机器。
尽管我读到编译窗口可能会出现问题,所以我从 Windows 商店安装了 ubuntu1804,然后继续为 lambda 层创建 zip。(zip是为python文件夹创建的,结构为“python/lib/python3.6/site-packages/......”)
我正在使用Python 3.6。我针对这个问题浏览了几篇文章,但可以找到任何解决方案。该视频帮助我成功地在 AWS 中为 Pandas 和请求创建了一个层,并对我使用的 pip 命令进行了细微调整
sudo python3 -m pip install simple-salesforce -t build/python/lib/python3.6/site-packages
Run Code Online (Sandbox Code Playgroud)
我在 Simple salesforce 中使用的流程完全相同,但出现以下错误:
无法导入模块“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
Run Code Online (Sandbox Code Playgroud)
小智 7
我在使用加密库(python)的 lambda 上安装 pysftp 时也收到了相同的错误,该错误类似于(/opt/python/lib/python3.6/site-packages/cryptography/hazmat/bindings/_rust.abi3 需要) 。所以)
对我有用的解决方案是 1] pip uninstall cryptography 2] pip install cryptography==3.4.8 以下github链接详细解释了它 https://github.com/pyca/cryptography/issues/6390
AWS lambda 函数就像虚拟环境,它们不附带.so内核级包的文件。安装 python 软件包时,必须确保系统相关文件也随之安装。这可以通过将参数传递--platform给 来实现pip install。
来自 AWS 帖子如何将带有已编译二进制文件的 Python 包添加到我的部署包并使该包与 Lambda 兼容?:
要在 Linux 操作系统外部使用 pip 时创建与 Lambda Python 运行时兼容的 Lambda 部署包或层,请运行 pip install 命令并将其
manylinux2014作为参数值--platform。
pip install \
--platform manylinux2014_x86_64 \
--target=my-lambda-function \
--implementation cp \
--python 3.9 \
--only-binary=:all: --upgrade \
simple-salesforce
Run Code Online (Sandbox Code Playgroud)
我更改了代码,不使用 simple_salesforce 库,并使用请求(使用 Salesforce REST API)计算出所有逻辑。这并不是很理想,但我可以让它工作,因为我有一些交付要满足。
| 归档时间: |
|
| 查看次数: |
13142 次 |
| 最近记录: |