环境说明

本文介绍在函数计算中使用自定义运行时编写函数的运行环境信息。

背景信息

基于自定义运行时,您可以打造您的专属运行环境。

  • 定制个性化语言,例如Rust。

  • 定制编程语言指定版本的运行环境,例如Node.js 16。

容器环境

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

名称

标识符

操作系统

架构

自定义运行时(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

环境信息

自定义运行时(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。

安装依赖

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

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