函数计算官方内置运行时提供了Node.js、Python、PHP、Java、C#和Go主流编程语言,开发者无需额外配置,可专注于业务逻辑。而在某些场景下,开发者可能需要使用非主流编程语言或特定版本的运行环境,此时可基于自定义运行时,打造专属运行环境。例如,定制个性化语言Rust或定制编程语言指定版本的运行环境Node.js 16。
自定义运行时建议搭配Web函数类型,可以快速搭建多种流行的Web应用框架,用于构建和部署基于HTTP的Web应用和服务。自定义运行时可以自定义启动命令和监听端口,并且支持单实例多并发。
容器环境
自定义运行时支持的运行环境如下。
名称 | 标识符 | 操作系统 | 架构 |
名称 | 标识符 | 操作系统 | 架构 |
自定义运行时(Debian11)(公测中) | custom.debian11 | Debian 11 | x86_64 |
自定义运行时(Debian10) | custom.debian10 | Debian 10 | x86_64 |
自定义运行时(Debian9) | custom | Debian 9 | x86_64 |
自定义运行时(Debian11)目前支持的地域包括华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、泰国(曼谷)、韩国(首尔)、德国(法兰克福)、英国(伦敦)、美国(弗吉尼亚)和美国(硅谷)。
2021年12月01日00:00:00之后创建的函数
用户权限:函数的执行用户为root。
目录权限:所有目录均可写。
代码在容器内目录位置:/code。
2021年12月01日00:00:00之前创建的函数
用户权限:函数的执行用户为非root。
目录权限:只有/tmp目录可写。
代码在容器内目录位置:/code。
环境信息
内置依赖项
自定义运行时内置语言的依赖项与内置运行时各语言的内置依赖项相同,详见以下文档。
选择自定义运行时创建Web函数时,为了简化Web应用开发流程,系统会自动为Web函数配置对应编程语言的官方公共层,例如,Python Web函数配置的层Flask。
自定义运行时(Debian11)
自定义运行时(Debian11)内置以下编程语言版本。您可以直接创建以下编程语言版本的自定义运行时函数,无需安装第三方解释器或配置层。
部分编程语言需要设置环境变量,详见下表。
编程语言 | 安装目录 | 版本 | 环境变量 |
编程语言 | 安装目录 | 版本 | 环境变量 |
Python 3.12 | /var/fc/lang/python3.12 | 3.12.4 | PATH=/var/fc/lang/python3.12/bin:$PATH |
自定义运行时(Debian10)
自定义运行时(Debian10)内置以下编程语言版本。您可以直接创建以下编程语言版本的自定义运行时函数,无需安装第三方解释器或配置层。
部分编程语言需要设置环境变量,详见下表。
编程语言 | 安装目录 | 版本 | 环境变量 |
编程语言 | 安装目录 | 版本 | 环境变量 |
Node.js 20 | /var/fc/lang/nodejs20 | v20.10.0 | PATH=/var/fc/lang/nodejs20/bin:$PATH |
Node.js 18 | /var/fc/lang/nodejs18 | v18.19.0 | PATH=/var/fc/lang/nodejs18/bin:$PATH |
Python 3.10 | /var/fc/lang/python3.10 | 3.10.9 | PATH=/var/fc/lang/python3.10/bin:$PATH |
Python 2.7 | 系统默认安装目录 | 2.7.16 | 不涉及 |
自定义运行时(Debian9)
自定义运行时(Debian9)内置以下编程语言版本。您可以直接创建以下编程语言版本的自定义运行时,无需安装第三方解释器或配置层。
Python 3.7.4(默认的Python版本)
Node.js 10.16.2
OpenJDK 1.8.0
Ruby 2.7
Nginx 1.10.3
PHP 7.4.12
使用非内置编程语言
推荐通过官方公共层的方式使用非内置编程语言,详情请参见通过控制台配置官方公共层。
当您打算使用某种语言打造自定义运行时,但该语言不是自定义运行时的内置语言时,您需要将该语言的解析器或运行时和代码文件一起打包部署到函数计算,实现您的预期目标。例如,当运行环境是Node.js 16时,您需要先下载Node.js 16所需的解释器到代码中,然后将打包后的代码部署到函数计算。具体操作如下。
下载Linux-x64版本的
node
到代码包目录。wget http://mirrors.nju.edu.cn/nodejs/v16.14.2/node-v16.14.2-linux-x64.tar.gz -O node-v16.14.2-linux-x64.tar.gz && tar -zxvf node-v16.14.2-linux-x64.tar.gz && rm -rf node-v16.14.2-linux-x64.tar.gz
设置自定义运行时使用
node
的启动命令。customRuntimeConfig: command: - /code/node-v16.14.2-linux-x64/bin/node args: - 'server.js' # 您也可以给函数设置环境变量 PATH=/code/node-v16.14.2-linux-x64/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin。 # 设置完成后,可以直接使用node启动HTTP Server。
安装依赖
自定义运行时安装各语言依赖的具体操作,请参见以下文档。
Node.js
Python
PHP
您也可以使用函数计算的层功能安装依赖,推荐您使用官方公共层或在线构建依赖层。具体操作,请参见以下文档。
- 本页导读 (1)
- 容器环境
- 2021年12月01日00:00:00之后创建的函数
- 2021年12月01日00:00:00之前创建的函数
- 环境信息
- 内置依赖项
- 自定义运行时(Debian11)
- 自定义运行时(Debian10)
- 自定义运行时(Debian9)
- 使用非内置编程语言
- 安装依赖