阿里云函数计算安装python依赖的几种方法

  • 阿里云函数计算的内存最大是100M,如果函数加依赖的大小不超过100M,可以使用以下前三种方法

第一种:使用pip直接安装

特点:适用于需要安装的依赖少且小
安装方式:在函数根目录下使用命令pip install -t . xxx,意为将依赖安装到项目根目录,没有任何组织结构

第二种:使用funcraft安装

特点:自动组织依赖结构,安装方式可以用FunFile或者fun install单独安装两种方式
安装方式:参考阿里云官方文档 Funcraft
如果遇到问题可以参考另一篇文章

第三种:使用Serverless Devs安装

特点:阿里云官方推荐方法,据说funcraft方法以后会被淘汰
安装方式阿里云官方文档 Serverless Devs

  • 如果函数加依赖的大小超过100M,使用以下几种方法:

一、使用Funcraft自动化部署

使用fun install安装的依赖,再通过fun deploy部署可以自动解决大依赖问题,但是需要提前开通Nas服务,这种方法借用了Nas来部署依赖,函数计算只部署了代码
参考开发函数计算的正确姿势——轻松解决大依赖部署

二、使用initializer在函数初始化时加载第三方依赖

原理和过程参考使用 initializer 接口解决函数计算上传代码包大小受限问题
整个过程是:

  1. 在本地下载好依赖打包成zip格式上传到oss桶中(如果项目是深度学习模型,也需要将模型放到oss中)
  2. 创建服务和函数,函数需要配置函数初始化为loader.initializer,函数入口为loader.handler
  3. 在自己的代码中添加loader.py,在loader.initializer中实现将依赖和模型加载到/tmp/目录下的过程,可以在上文中进行改进,添加模型和依赖是否已经加载到本地的判断从而避免不必要的加载过程
  4. 在loader.py的handler中调用index.py的handler
    在文中提到的几个环境变量,如AppLibObject是oss里面的对象,AppLibDir是/tmp/目录下的某个文件夹,可自行设置,也可以不用环境变量的方式写成变量
    需要注意的问题:函数计算的环境是Linux,如果是从Windows下安装依赖上传到函数计算上,可能存在no module named xxx这种问题,所以最好用Linux安装好依赖再打包到OSS上
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值