本文介绍在函数计算中使用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,无需安装第三方解释器或配置层。
- Python 2.7(默认的Python版本)
- Python 3.10.9
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所需的解释器到代码中,然后将打包后的代码部署到函数计算。具体操作如下。
- 下载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
- 设置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。
安装依赖
您也可以使用函数计算的层功能安装依赖,推荐您使用官方公共层或在线构建依赖层。具体操作,请参见以下文档。