环境说明

本文介绍在函数计算中使用Custom Runtime编写函数的运行环境信息。

背景信息

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

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

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

容器环境

Custom Runtime支持的运行环境如下。

名称

标识符

操作系统

架构

Custom Runtime(Debian10)

custom.debian10

Debian 10

x86_64

Custom Runtime

custom

Debian 9

x86_64

Custom Runtime(Debian10)(公测中)

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

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

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

Custom Runtime

  • 用户权限

    • 2021年12月01日00:00:00之后创建的函数,函数的执行用户为root。

    • 2021年12月01日00:00:00之前创建的函数,函数的执行用户为非root。

  • 目录权限

    • 2021年12月01日00:00:00之后创建的函数,所有目录均可写。

    • 2021年12月01日00:00:00之前创建的函数,只有/tmp目录可写。

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

环境信息

Custom Runtime(Debian10)

Custom Runtime(Debian10)内置以下编程语言版本。您可以直接创建以下编程语言版本的Custom Runtime,无需安装第三方解释器或配置层。

部分编程语言需要设置环境变量,详见下表。

编程语言

安装目录

版本

环境变量

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

不涉及

Custom Runtime

Custom Runtime内置以下编程语言版本。您可以直接创建以下编程语言版本的Custom Runtime,无需安装第三方解释器或配置层。

  • 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

使用非内置编程语言

说明

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

当您打算使用某种语言打造Custom Runtime,但该语言不是Custom Runtime的内置语言时,您需要将该语言的解析器或运行时和代码文件一起打包部署到函数计算,实现您的预期目标。例如,当运行环境是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. 设置Custom Runtime使用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。

安装依赖

Custom Runtime安装各语言依赖的具体操作,请参见以下文档。

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