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

背景信息

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

容器环境

Custom Runtime支持的运行环境如下。
名称标识符操作系统架构
Custom Runtime(Debian10)(公测中)custom.debian10Debian 10x86_64
Custom RuntimecustomDebian 9x86_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,无需安装第三方解释器或配置层。

Python 3.10.9

Custom Runtime

Custom Runtime内置以下编程语言版本。您可以直接创建以下编程语言版本的Custom Runtime,无需安装第三方解释器或配置层。
  • Python 3.7.4
  • Node.js 10.16.2
  • OpenJDK 1.8.0
  • Ruby 2.7
  • Nginx 1.10.3
  • PHP 7.4.12
    展开查看PHP 7.4.12内置的扩展列表。
    bcmathcalendarCore
    ctypecurldate
    domexifFFI
    fileinfofilterftp
    gdgettexthash
    iconvimagickimap
    intljsonlibxml
    mbstringmcryptmemcached
    mysqlimysqlndopenSSL
    pcntlpcrePDO
    pdo_mysqlpdo_pgsqlpdo_sqlite
    pgsqlPharposix
    protobufreadlineredis
    Reflectionsessionshmop
    SimpleXMLsoapsockets
    sodiumSPLsqlite3
    standardswoole sysvmsg
    sysvsemsysvshmtokenizer
    xmlxmlreaderxmlrpc
    xmlwriterxsl Zend OPcache
    zipzlib

使用非内置编程语言

当您打算使用某种语言打造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安装各语言依赖的具体操作,请参见以下文档。
您也可以使用函数计算的层功能安装依赖,推荐您使用官方公共层或在线构建依赖层。具体操作,请参见以下文档。