通过添加雪花连接器依赖项作为层,在aws-lamda中使用雪花



我正在尝试添加snowflake-connector-python版本2.7.9作为aws lambda中的层。我收到这个错误Unable to import module lambda_function: /lib64/libc.so.6: version GLIBC_2.28 not found (required by /opt/python/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so)

我尝试过的步骤docker run -v /Users/local/Documents/docker_test:/working -it --rm ubuntu

一进去我就试过

  1. apt-get update
  2. 然后使用链接https://exchangetuts.com/how-to-install-python39-on-linux-ubuntu-terminal-1639972230035814安装python 3.9
  3. apt install python3-virtualenv
  4. 虚拟雪花测试
  5. 源雪花_测试/bin/activate
  6. python3——版本
  7. sudo apt安装python3pip
  8. python3-m pip3安装--升级pip
  9. sudo apt-get-install-y libssl-dev libffi-dev
  10. mkdir-p lambda_layers/python/lib/python3.9/site-packages
  11. cd lambda_layers/python/lib/python3.9/site-packages
  12. pip3安装雪花连接器python==2.7.9-t

然后压缩/python/lib/python3.9/site-packages内容并在aws中创建一个层。而i函数是简单的

import json
import snowflake.connector
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}

我不得不做的一些事情来得到这个错误

  1. 我必须安装cffi,因为我正在获得No module named '_cffi_backend'
  2. 必须删除cyrptography依赖性,因为我有版本36,然后重新安装以获得38
  3. python3virtualenv似乎也安装了python 3.10.x版本。因此docker镜像同时具有python 3.10和3.9。Snowflake医生说它只适用于3.9我将添加的别名更改为python,将python3更改为指向python3.9

如何修复此错误/lib64/libc.so.6: version GLIBC_2.28

我也遇到了类似的问题,不得不在lambda层中指定一个较旧的加密版本(pip-install cryptography=3.4.8(。对我来说,这解决了问题,希望这也能帮助你!

相关内容

  • 没有找到相关文章

最新更新