Function Compute官方內建運行時提供了Node.js、Python、PHP、Java、C#和Go主流程式設計語言,開發人員無需額外配置,可專註於商務邏輯。而在某些情境下,開發人員可能需要使用非主流程式設計語言或特定版本的運行環境,此時可基於自訂運行時,打造專屬運行環境。例如,定製個人化語言Rust或定製程式設計語言指定版本的運行環境Node.js 16。
自訂運行時建議搭配Web函數類型,可以快速搭建多種流行的Web應用程式框架,用於構建和部署基於HTTP的Web應用和服務。自訂運行時可以自訂啟動命令和監聽連接埠,並且支援單一實例多並發。
容器環境
自訂運行時支援的運行環境如下。
名稱 | 標識符 | 作業系統 | 架構 |
自訂運行時(Debian12)(公測中) | custom.debian12 | Debian 12 | x86_64 |
自訂運行時(Debian11) | custom.debian11 | Debian 11 | x86_64 |
自訂運行時(Debian10) | custom.debian10 | Debian 10 | x86_64 |
自訂運行時(Debian9) | custom | Debian 9 | x86_64 |
自訂運行時(Debian12)目前支援的地區包括華東1(杭州)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)和西南1(成都)。
2021年12月01日00:00:00之後建立的函數
使用者權限:函數的執行使用者為root。
目錄許可權:所有目錄均可寫。
代碼在容器內目錄位置:/code。
2021年12月01日00:00:00之前建立的函數
使用者權限:函數的執行使用者為非root。
目錄許可權:只有/tmp目錄可寫。
代碼在容器內目錄位置:/code。
環境資訊
內建依賴項
自訂運行時內建語言的依賴項與內建運行時各語言的內建依賴項相同,詳見以下文檔。
選擇自訂運行時建立Web函數時,為了簡化Web應用開發流程,系統會自動為Web函數配置對應程式設計語言的官方公用層,例如,Python Web函數配置的層Flask。
自訂運行時(Debian12)
自訂運行時(Debian12)內建以下程式設計語言版本。您可以直接建立以下程式設計語言版本的自訂運行時函數,無需安裝第三方解譯器或配置層。
部分程式設計語言需要設定環境變數,詳見下表。
程式設計語言 | 安裝目錄 | 版本 | 環境變數 |
Python 3.11 | /usr/bin/python3 | 3.11.2 | 無需額外設定 |
自訂運行時(Debian11)
自訂運行時(Debian11)內建以下程式設計語言版本。您可以直接建立以下程式設計語言版本的自訂運行時函數,無需安裝第三方解譯器或配置層。
部分程式設計語言需要設定環境變數,詳見下表。
程式設計語言 | 安裝目錄 | 版本 | 環境變數 |
Python 3.12 | /var/fc/lang/python3.12 | 3.12.4 | PATH=/var/fc/lang/python3.12/bin:$PATH |
自訂運行時(Debian10)
自訂運行時(Debian10)內建以下程式設計語言版本。您可以直接建立以下程式設計語言版本的自訂運行時函數,無需安裝第三方解譯器或配置層。
部分程式設計語言需要設定環境變數,詳見下表。
程式設計語言 | 安裝目錄 | 版本 | 環境變數 |
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 | 不涉及 |
自訂運行時(Debian9)
自訂運行時(Debian9)內建以下程式設計語言版本。您可以直接建立以下程式設計語言版本的自訂運行時,無需安裝第三方解譯器或配置層。
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
使用非內建程式設計語言
推薦通過官方公用層的方式使用非內建程式設計語言,詳情請參見通過控制台配置官方公用層。
當您打算使用某種語言打造自訂運行時,但該語言不是自訂運行時的內建語言時,您需要將該語言的解析器或運行時和代碼檔案一起打包部署到Function Compute,實現您的預期目標。例如,當運行環境是Node.js 16時,您需要先下載Node.js 16所需的解譯器到代碼中,然後將打包後的代碼部署到Function Compute。具體操作如下。
下載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設定自訂運行時使用
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。
安裝依賴
自訂運行時安裝各語言依賴的具體操作,請參見以下文檔。
Node.js
Python
PHP
您也可以使用Function Compute的層功能安裝依賴,推薦您使用官方公用層或線上構建依賴層。具體操作,請參見以下文檔。