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

背景信息

Custom Runtime是自定义运行环境,基于Custom Runtime您可以打造属于您的专属运行环境。
  • 定制个性化语言,例如Rust。
  • 定制编程语言指定版本的运行环境,例如Node.js 16。

容器环境

Custom Runtime的容器环境如下。
  • 操作系统版本:Debian 9。
  • 架构:x86_64。
  • 用户权限:
    • 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内置以下语言版本。您可以直接创建以下语言版本的Custom Runtime,无需安装第三方解释器。
  • Python 3.7.4
  • Node.js 10.16.2
  • OpenJDK 1.8.0
  • Ruby 2.7
  • PowerShell 7.1.0
  • 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安装各语言依赖的具体操作,请参见以下文档。