FC 上部署的 flask,依赖了 cryptography,运行时报错:
{ “errorMessage”: “Unable to import module ‘index'”, “errorType”: “ImportModuleError”, “stackTrace”: [ “ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28’ not found (required by /code/cryptography/hazmat/bindings/_rust.abi3.so)” ] }
这是 runtime 的问题吗?能升级到 debian10 吗?
应该是 custom runtime 里能选到 debian10
此答案来自钉钉群“阿里函数计算官网客户”
这个错误信息表示您的Flask应用程序中使用的cryptography库在运行时找不到它所需的glibc库。glibc库是C语言库的一部分,用于提供内存管理、文件I/O等功能。 解决方法之一是安装glibc库 sudo apt-get update sudo apt-get install libglib2.0-0 这将安装glibc库,并为您的Flask应用程序提供所需的依赖关系。 另一种解决方法是使用不同的cryptography库,例如pycryptodome库。
此错误是因为您的函数依赖的 cryptography 库需要的 GLIBC 版本高于 FC 运行环境提供的版本。
为了解决该问题,您可以使用自定义运行环境。FC 支持自定义运行环境来满足函数运行时依赖特定的库或工具。您可以基于相应操作系统镜像,安装所需的库和工具,并打包成新的运行环境镜像,然后在函数配置中指定相应的镜像以使用自定义运行环境。
在您的情况下,建议使用 debian10 镜像作为基础镜像,安装您的 flask 应用所需的依赖库和工具,然后将整个环境打包成新的镜像,并在函数配置中指定该镜像。
自定义运行环境需要您具有一定的 Linux 系统管理经验,并且需要您能够熟练地使用 Docker 技术来构建和管理镜像。如果您不具备相关技术和经验,可能需要寻求专业人士的帮助。