自定义运行时(Custom Runtime)

更新时间:2025-02-26 07:06:11

函数计算官方内置运行时提供了Node.js、Python、PHP、Java、C#和Go主流编程语言,开发者无需额外配置,可专注于业务逻辑。而在某些场景下,开发者可能需要使用非主流编程语言或特定版本的运行环境,此时可基于自定义运行时,打造专属运行环境。例如,定制个性化语言Rust或定制编程语言指定版本的运行环境Node.js 16。

自定义运行时建议搭配Web函数类型,可以快速搭建多种流行的Web应用框架,用于构建和部署基于HTTPWeb应用和服务。自定义运行时可以自定义启动命令和监听端口,并且支持单实例多并发。

容器环境

自定义运行时支持的运行环境如下。

名称

标识符

操作系统

架构

名称

标识符

操作系统

架构

自定义运行时(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(成都)、中国香港、日本(东京)、泰国(曼谷)、韩国(首尔)、德国(法兰克福)、英国(伦敦)、美国(弗吉尼亚)和美国(硅谷)。

2021120100:00:00之后创建的函数

  • 用户权限:函数的执行用户为root。

  • 目录权限:所有目录均可写。

  • 代码在容器内目录位置:/code

2021120100: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

    展开查看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时,您需要先下载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

安装依赖

自定义运行时安装各语言依赖的具体操作,请参见以下文档。

您也可以使用函数计算的层功能安装依赖,推荐您使用官方公共层或在线构建依赖层。具体操作,请参见以下文档。

  • 本页导读 (1)
  • 容器环境
  • 2021年12月01日00:00:00之后创建的函数
  • 2021年12月01日00:00:00之前创建的函数
  • 环境信息
  • 内置依赖项
  • 自定义运行时(Debian11)
  • 自定义运行时(Debian10)
  • 自定义运行时(Debian9)
  • 使用非内置编程语言
  • 安装依赖
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等