すべてのプロダクト
Search
ドキュメントセンター

Function Compute:カスタムランタイム

最終更新日:Apr 30, 2025

Function Compute は、Node.js、Python、PHP、Java、C#、Go などの主要なプログラミング言語用の組み込みランタイムを提供しています。開発者は、追加の構成なしでビジネスロジックに集中できます。シナリオによっては、開発者が非主流のプログラミング言語や特定のバージョンのランタイム環境を使用する必要がある場合があります。このような場合は、カスタムランタイムを作成して特殊な環境を構築できます。たとえば、Rust などの言語や、Node.js 16 などの特定のバージョンのプログラミング言語の環境をカスタマイズできます。

Web 関数タイプでカスタムランタイムを使用して、HTTP ベースの Web アプリケーションとサービスを作成およびデプロイするためのさまざまな一般的な Web アプリケーションフレームワークを迅速に構築することをお勧めします。カスタムランタイムを使用すると、起動コマンドとリスナーポートをカスタマイズでき、単一インスタンス内で複数の同時リクエストをサポートできます。

コンテナ環境

次の表は、カスタムランタイムでサポートされているランタイム環境を示しています。

名前

識別子

オペレーティングシステム

アーキテクチャ

カスタムランタイム (Debian 12) (パブリックプレビュー)

custom.debian12

Debian 12

x86_64

カスタムランタイム (Debian 11)

custom.debian11

Debian 11

x86_64

カスタムランタイム (Debian 10)

custom.debian10

Debian 10

x86_64

カスタムランタイム (Debian 9)

custom

Debian 9

x86_64

重要

カスタムランタイム (Debian 12) は、現在、次のリージョンでサポートされています。中国 (杭州)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (成都)。

2021年 12月 1日 00:00:00 以降に作成された関数

  • ユーザー権限: 関数は root ユーザーによって実行される必要があります。

  • ディレクトリ権限: データは任意のディレクトリに書き込むことができます。

  • コンテナ内のコードの場所: /code

2021年 12月 1日 00:00:00 より前に作成された関数

  • ユーザー権限: 関数は root 以外のユーザーによって実行される必要があります。

  • ディレクトリ権限: 書き込み可能なディレクトリは /tmp ディレクトリのみです。

  • コンテナ内のコードの場所: /code

環境情報

組み込み依存関係

カスタムランタイムの組み込み言語の依存関係は、組み込みランタイムの依存関係と同じです。詳細については、以下のトピックをご参照ください。

カスタムランタイムを使用して Web 関数を作成すると、Web アプリケーション開発を簡素化するために、対応するプログラミング言語の公式パブリックレイヤーが自動的に構成されます。たとえば、Python Web 関数には Flask レイヤーが構成されます。

カスタムランタイム (Debian 12)

次の表は、カスタムランタイム (Debian 12) の組み込みプログラミング言語を示しています。サードパーティのインタープリターをインストールしたり、レイヤーを構成したりせずに、次の言語でカスタムランタイム関数のコードを直接記述できます。

一部のプログラミング言語では、環境変数を構成する必要があります。次の表で詳細を説明します。

プログラミング言語

インストールディレクトリ

バージョン

環境変数

Python 3.11

/usr/bin/python3

3.11.2

追加の構成は必要ありません

カスタムランタイム (Debian 11)

次の表は、カスタムランタイム (Debian 11) の組み込みプログラミング言語を示しています。サードパーティのインタープリターをインストールしたり、レイヤーを構成したりせずに、次の言語でカスタムランタイム関数のコードを直接記述できます。

一部のプログラミング言語では、環境変数を構成する必要があります。次の表で詳細を説明します。

プログラミング言語

インストールディレクトリ

バージョン

環境変数

Python 3.12

/var/fc/lang/python3.12

3.12.4

PATH=/var/fc/lang/python3.12/bin:$PATH

カスタムランタイム (Debian 10)

次の表に、カスタムランタイム (Debian 10) に組み込まれているプログラミング言語を示します。サードパーティのインタープリターをインストールしたり、レイヤーを構成したりせずに、以下の言語でカスタムランタイム関数のコードを直接記述できます。

プログラミング言語によっては、環境変数を構成する必要があります。次の表で詳細を説明します。

プログラミング言語

インストールディレクトリ

バージョン

環境変数

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

なし。

カスタムランタイム (Debian 9)

次の表に、カスタムランタイム (Debian 9) の組み込みプログラミング言語を示します。サードパーティのインタープリターをインストールしたり、レイヤーを構成したりせずに、次の言語のカスタムランタイムを作成できます。

  • 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. node の Linux-x64 バージョンをコードパッケージディレクトリにダウンロードします。

    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 サーバーを直接起動できます。

依存関係をインストールする

カスタムランタイムに各プログラミング言語の依存関係をインストールする方法の詳細については、以下のトピックをご参照ください。

Function Compute のレイヤー機能を使用して依存関係をインストールすることもできます。公式パブリックレイヤーを使用するか、オンラインで依存関係レイヤーを構築することをお勧めします。詳細については、以下のトピックをご参照ください。