環(huán)境說(shuō)明
本文介紹在函數(shù)計(jì)算中使用Custom Runtime編寫函數(shù)的運(yùn)行環(huán)境信息。
背景信息
Custom Runtime是自定義運(yùn)行環(huán)境。基于Custom Runtime,您可以打造您的專屬運(yùn)行環(huán)境。
定制個(gè)性化語(yǔ)言,例如Rust。
定制編程語(yǔ)言指定版本的運(yùn)行環(huán)境,例如Node.js 16。
容器環(huán)境
Custom Runtime支持的運(yùn)行環(huán)境如下。
名稱 | 標(biāo)識(shí)符 | 操作系統(tǒng) | 架構(gòu) |
Custom Runtime(Debian10) | custom.debian10 | Debian 10 | x86_64 |
Custom Runtime | custom | Debian 9 | x86_64 |
Custom Runtime(Debian10)(公測(cè)中)
用戶權(quán)限:函數(shù)的執(zhí)行用戶為root。
目錄權(quán)限:所有目錄均可寫。
代碼在容器內(nèi)目錄位置:/code。
Custom Runtime
用戶權(quán)限
2021年12月01日00:00:00之后創(chuàng)建的函數(shù),函數(shù)的執(zhí)行用戶為root。
2021年12月01日00:00:00之前創(chuàng)建的函數(shù),函數(shù)的執(zhí)行用戶為非root。
目錄權(quán)限
2021年12月01日00:00:00之后創(chuàng)建的函數(shù),所有目錄均可寫。
2021年12月01日00:00:00之前創(chuàng)建的函數(shù),只有/tmp目錄可寫。
代碼在容器內(nèi)目錄位置:/code。
環(huán)境信息
Custom Runtime(Debian10)
Custom Runtime(Debian10)內(nèi)置以下編程語(yǔ)言版本。您可以直接創(chuàng)建以下編程語(yǔ)言版本的Custom Runtime,無(wú)需安裝第三方解釋器或配置層。
部分編程語(yǔ)言需要設(shè)置環(huán)境變量,詳見(jiàn)下表。
編程語(yǔ)言 | 安裝目錄 | 版本 | 環(huán)境變量 |
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 | 系統(tǒng)默認(rèn)安裝目錄 | 2.7.16 | 不涉及 |
Custom Runtime
Custom Runtime內(nèi)置以下編程語(yǔ)言版本。您可以直接創(chuàng)建以下編程語(yǔ)言版本的Custom Runtime,無(wú)需安裝第三方解釋器或配置層。
Python 3.7.4(默認(rèn)的Python版本)
Node.js 10.16.2
OpenJDK 1.8.0
Ruby 2.7
Nginx 1.10.3
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
無(wú)
使用非內(nèi)置編程語(yǔ)言
推薦通過(guò)官方公共層的方式使用非內(nèi)置編程語(yǔ)言,詳情請(qǐng)參見(jiàn)通過(guò)控制臺(tái)配置官方公共層。
當(dāng)您打算使用某種語(yǔ)言打造Custom Runtime,但該語(yǔ)言不是Custom Runtime的內(nèi)置語(yǔ)言時(shí),您需要將該語(yǔ)言的解析器或運(yùn)行時(shí)和代碼文件一起打包部署到函數(shù)計(jì)算,實(shí)現(xiàn)您的預(yù)期目標(biāo)。例如,當(dāng)運(yùn)行環(huán)境是Node.js 16時(shí),您需要先下載Node.js 16所需的解釋器到代碼中,然后將打包后的代碼部署到函數(shù)計(jì)算。具體操作如下。
下載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
設(shè)置Custom Runtime使用
node
的啟動(dòng)命令。customRuntimeConfig: command: - /code/node-v16.14.2-linux-x64/bin/node args: - 'server.js' # 您也可以給函數(shù)設(shè)置環(huán)境變量 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。 # 設(shè)置完成后,可以直接使用node啟動(dòng)HTTP Server。
安裝依賴
Custom Runtime安裝各語(yǔ)言依賴的具體操作,請(qǐng)參見(jiàn)以下文檔。
Node.js
Python
PHP
您也可以使用函數(shù)計(jì)算的層功能安裝依賴,推薦您使用官方公共層或在線構(gòu)建依賴層。具體操作,請(qǐng)參見(jiàn)以下文檔。