自定义运行时(Custom Runtime)

更新时间:
复制 MD 格式

函数计算官方内置运行时提供了 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

    展开查看 PHP 7.4.12 内置的扩展列表

    bcmath

    calendar

    Core

    ctype

    curl

    date

    dom

    exif

    FFI

    fileinfo

    filter

    ftp

    gd

    gettext

    hash

    iconv

    imagick

    imap

    intl

    json

    libxml

    mbstring

    mcrypt

    memcached

    mysqli

    mysqlnd

    openSSL

    pcntl

    pcre

    PDO

    pdo_mysql

    pdo_pgsql

    pdo_sqlite

    pgsql

    Phar

    posix

    protobuf

    readline

    redis

    Reflection

    session

    shmop

    SimpleXML

    soap

    sockets

    sodium

    SPL

    sqlite3

    standard

    swoole

    sysvmsg

    sysvsem

    sysvshm

    tokenizer

    xml

    xmlreader

    xmlrpc

    xmlwriter

    xsl

    Zend OPcache

    zip

    zlib

    无

使用非内置编程语言

说明

推荐通过官方公共层的方式使用非内置编程语言,详情请参见。

当自定义运行时内置的语言无法满足需求时,可将该语言的运行时或解释器与代码文件一起打包部署到函数计算。以下以 Node.js 16 为例,说明具体操作。

  1. 下载 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
  2. 设置自定义运行时的启动命令为 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。