全部產品
Search
文件中心

Function Compute:自訂運行時(Custom Runtime)

更新時間:Apr 16, 2025

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

    展開查看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

使用非內建程式設計語言

說明

推薦通過官方公用層的方式使用非內建程式設計語言,詳情請參見通過控制台配置官方公用層

當您打算使用某種語言打造自訂運行時,但該語言不是自訂運行時的內建語言時,您需要將該語言的解析器或運行時和代碼檔案一起打包部署到Function Compute,實現您的預期目標。例如,當運行環境是Node.js 16時,您需要先下載Node.js 16所需的解譯器到代碼中,然後將打包後的代碼部署到Function Compute。具體操作如下。

  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. 設定自訂運行時使用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。

安裝依賴

自訂運行時安裝各語言依賴的具體操作,請參見以下文檔。

您也可以使用Function Compute的層功能安裝依賴,推薦您使用官方公用層或線上構建依賴層。具體操作,請參見以下文檔。