开发者社区 > 云原生 > Serverless > 正文

FC 上部署的 flask,依赖了 cryptography,运行时报错:

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 吗?

展开
收起
绿子直子 2023-06-16 09:49:01 176 0
4 条回答
写回答
取消 提交回答
  • 应该是 custom runtime 里能选到 debian10

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-16 16:53:08
    赞同 展开评论 打赏
  • 这个错误信息表示您的Flask应用程序中使用的cryptography库在运行时找不到它所需的glibc库。glibc库是C语言库的一部分,用于提供内存管理、文件I/O等功能。 解决方法之一是安装glibc库 sudo apt-get update sudo apt-get install libglib2.0-0 这将安装glibc库,并为您的Flask应用程序提供所需的依赖关系。 另一种解决方法是使用不同的cryptography库,例如pycryptodome库。

    2023-06-16 15:02:03
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    此错误是因为您的函数依赖的 cryptography 库需要的 GLIBC 版本高于 FC 运行环境提供的版本。

    为了解决该问题,您可以使用自定义运行环境。FC 支持自定义运行环境来满足函数运行时依赖特定的库或工具。您可以基于相应操作系统镜像,安装所需的库和工具,并打包成新的运行环境镜像,然后在函数配置中指定相应的镜像以使用自定义运行环境。

    在您的情况下,建议使用 debian10 镜像作为基础镜像,安装您的 flask 应用所需的依赖库和工具,然后将整个环境打包成新的镜像,并在函数配置中指定该镜像。

    自定义运行环境需要您具有一定的 Linux 系统管理经验,并且需要您能够熟练地使用 Docker 技术来构建和管理镜像。如果您不具备相关技术和经验,可能需要寻求专业人士的帮助。

    2023-06-16 14:50:45
    赞同 展开评论 打赏
  • 您的错误提示中提到了 /lib/x86_64-linux-gnu/libc.so.6: versionGLIBC_2.28' not found,这是由于 FC 运行时使用的操作系统中缺少GLIBC_2.28` 库的版本。

    目前 FC 运行时使用的是阿里云自研的 Linux 版本,升级到 Debian 10 并不可行。但是,根据实际情况,您可以尝试以下几种方法来解决您的问题:

    1. 尝试升级 cryptography 包的版本,以兼容当前的 FC 运行时。

    2. 尝试使用 aliyun-python-sdk-fc 等工具将依赖包打包为应用程序包,并在 FC 上运行,这样可以避免以下环境库版本的冲突问题。

    3. 为您的应用程序选择一个不依赖于 GLIBC_2.28 版本的加密库,以避免环境库版本的冲突问题。

    2023-06-16 09:51:16
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载