全部產品
Search
文件中心

Function Compute:環境說明

更新時間:Jul 06, 2024

本文介紹在Function Compute中使用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,無需安裝第三方解譯器或配置層。

部分程式設計語言需要設定環境變數,詳見下表。

程式設計語言

安裝目錄

版本

環境變數

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

不涉及

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的內建語言時,您需要將該語言的解析器或運行時和代碼檔案一起打包部署到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. 設定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安裝各語言依賴的具體操作,請參見以下文檔。

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