在阿里函数计算中,第三方扩展依赖的外部模型,如何处理?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云函数计算 (Function Compute, FC) 实现第三方扩展依赖的外部模型时,需要注意以下几点:
在阿里函数计算中,对于第三方扩展依赖的外部模型处理,阿里云提供了两种主要的方法。首先,函数计算运行环境中已经内置了一些常用的依赖,可以直接在函数中引用。其次,函数计算也支持使用第三方依赖。如果需要安装的依赖库大小不超过100M,可以使用pip工具直接在函数根目录下进行安装。
然而,对于多个函数中有相同的依赖包的情况,阿里云函数计算官方为了提升用户体验,发布了“自定义层”功能。通过这个功能,用户可以自定义层,并支持跨函数共享。同时,公共层功能也已经发布,用户可以直接使用,进一步提升了用户体验。在层功能发布之前,用户必须将代码与代码的依赖项一起打包和部署,这些依赖项在不同函数中可能是相同的,而且这些依赖项的大小,远远大于代码的大小。因此,利用自定义层和公共层功能可以有效地管理和共享相同或者重复的依赖包。
PHP运行环境支持使用第三方扩展
函数计算 php runtime - 如何加载卸载内置扩展https://developer.aliyun.com/article/645670
在函数计算的php runtime 中,为了支持用户自定义增加和删减内置扩展,扩展没有采用built-in php 形式,这就给了用户自由操作的空间。在官方教程中,有使用自定义扩展 教程https://help.aliyun.com/zh/fc/overview-8#using-customextension
安装PHP非内置扩展
当您需要使用PHP Runtime非内置扩展时,请根据以下步骤安装。本文以安装非内置扩展Mongodb为例进行介绍。
前提条件
您已安装Docker。具体操作步骤,请参见安装Docker。
您已创建运行环境为PHP的函数。具体操作步骤,请参见创建函数。
操作步骤
在项目目录中执行以下命令,启动进入PHP Runtime镜像,并可以将当前目录挂载到容器的/code目录。
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bash
说明
如果您的电脑是Windows操作系统,可以将$(pwd)修改为具体的绝对目录。
安装MongoDB扩展,并将mongodb.so复制到/code目录。
执行以下命令,在容器内安装MongoDB扩展。
pecl install mongodb
执行以下命令,找到ZIP扩展。
find /usr -name "mongodb.so"
执行以下命令,复制扩展文件到/code目录即拷贝到本地机器的目录。
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code
执行以下命令,退出容器。
exit
执行以下命令,确认是否存在mongodb.so文件,若存在则证明SO文件已经存在本地。
ls
预期输出如下。
mongodb.so
登录函数计算控制台,在左侧导航栏,单击服务及函数。
在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
在目标服务页面,单击目标函数,在函数代码页签中的函数入口文件同级目录下创建extension文件夹。
将mongodb.so文件添加至extension文件夹内,并在extension文件夹内创建mongodb.ini文件。
编写mongodb.ini文件。
将以下内容填写至mongodb.ini文件中,并保存。
extension=/code/extension/mongodb.so
如果需要安装其他自定义扩展,请按需单击下方链接,直接下载文件。