函数计算官方内置运行时提供了 Node.js、Python、PHP、Java、C# 和 Go 等主流编程语言的支持。当内置运行时无法满足需求时,可使用自定义运行时打造专属运行环境,例如使用 Rust 等非主流编程语言,或指定特定版本的运行环境。
推荐将自定义运行时搭配 Web 函数类型使用,可快速搭建多种流行的 Web 应用框架,用于构建和部署基于 HTTP 的 Web 应用和服务。自定义运行时支持自定义启动命令和监听端口,并支持单实例多并发。
支持的容器运行时
自定义运行时支持以下运行环境。
|
名称 |
标识符 |
操作系统 |
架构 |
|
自定义运行时(Debian12) |
custom.debian12 |
Debian 12 |
x86_64 |
|
自定义运行时(Debian11) |
custom.debian11 |
Debian 11 |
x86_64 |
|
自定义运行时(Debian10) |
custom.debian10 |
Debian 10 |
x86_64 |
|
自定义运行时(Debian9) |
custom |
Debian 9 |
x86_64 |
|
MCP 运行时(Node.js 20,Debian10) |
nodejs20_mcp.debian10 |
Debian 10 |
x86_64 |
|
MCP 运行时(Node.js 22,Debian12) |
nodejs22_mcp.debian12 |
Debian 12 |
x86_64 |
|
MCP 运行时(Python 3.10,Debian10) |
python3.10_mcp.debian10 |
Debian 10 |
x86_64 |
|
MCP 运行时(Python 3.13,Debian12) |
python3.13_mcp.debian12 |
Debian 12 |
x86_64 |
MCP 运行时是面向 MCP(Model Context Protocol)Server 场景的预配置运行环境,内置 MCP 协议支持。选择 MCP 运行时创建函数后,可直接开发和部署 MCP Server,无需额外配置协议依赖。关于 MCP 会话亲和配置,请参见会话亲和配置相关文档。
2021年12月01日00:00:00之后创建的函数
-
执行用户:root。
-
目录权限:所有目录均可写。
-
代码目录:/code。
2021年12月01日00:00:00之前创建的函数
-
执行用户:非 root。
-
目录权限:仅 /tmp 目录可写。
-
代码目录:/code。
内置依赖项
自定义运行时内置的语言依赖项与内置运行时各语言的内置依赖项相同.
选择自定义运行时创建 Web 函数时,系统会自动为 Web 函数配置对应编程语言的官方公共层。例如,Python Web 函数默认配置 Flask 层。
自定义运行时(Debian12)
自定义运行时(Debian12)内置以下编程语言。您可以直接创建以下语言版本的自定义运行时函数,无需安装第三方解释器或配置层。
部分语言需要设置环境变量,详见下表。
|
编程语言 |
安装目录 |
版本 |
环境变量 |
|
Python 3.11 |
/usr/bin/python3 |
3.11.2 |
无需额外设置 |
|
Python 3.12 |
/opt/python3.12 |
3.12.4 |
PATH=/opt/python3.12/bin:$PATH |
Python 3.12 在自定义运行时(Debian12)中需要通过配置公共层(/Python312/versions/1)使用,与 Debian11 的内置方式不同。关于公共层的配置方法,请参见公共层相关文档。
自定义运行时(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 为例,说明具体操作。
-
下载 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。