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

Function Compute:概要

最終更新日:Dec 03, 2024

このトピックでは、Function Computeで関数を記述できるカスタムランタイムについて説明します。

背景

カスタムランタイムを使用すると、ランタイム環境をカスタマイズできます。 カスタムランタイムでは、ビジネス要件に基づいて排他的関数実行環境を作成できます。 以下の項目は、一般的なシナリオを示します。

  • Rustなどの個別のプログラミング言語をカスタマイズします。

  • Node.js 16などのプログラミング言語の指定されたバージョンのランタイムをカスタマイズします。

コンテナ環境

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

ランタイム

ID

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

アーキテクチャ

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

custom.de bian11

デビアン11

x86_64

カスタムランタイム (Debian10)

custom.de bian10

デビアン10

x86_64

カスタムランタイム

custom

Debian 9

x86_64

重要

カスタムランタイム (Debian 11) は、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (深セン) 、中国 (成都) 、中国 (香港) 、日本 (東京) 、タイ (バンコク) 、韓国 (ソウル) 、フランクフルト (ドイツ) 、英国 (ロンドン) 、米国 (バージニア) 、および米国 (シリコンバレー) 。

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

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

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

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

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

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

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

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

環境情報

カスタムランタイム (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

非該当

カスタムランタイム

次のプログラミング言語は、カスタムランタイムに組み込まれています。 サードパーティ製のインタプリタをインストールしたり、レイヤーを設定したりすることなく、次の言語のカスタムランタイムを作成できます。

  • Python 3.7.4 (デフォルトのPythonバージョン)

  • Node.js 10.16.2

  • OpenJDK 1.8.0

  • ルビー2.7

  • Nginx 1.10.3

  • PHP 7.4.12

    展開して、PHP 7.4.12の組み込み拡張機能のリストを表示します。

    bcmath

    カレンダー

    Core

    ctype

    curl

    date

    dom

    exif

    FFI

    fileinfo

    filter

    ftp

    gd

    gettext

    hash

    iconv

    イマジック

    イマップ

    intl

    JSON

    libxml

    mbstring

    mcrypt

    memcached

    mysqli

    mysqlnd

    openSSL

    pcntl

    pcre

    PDO

    pdo_mysql

    pdo_pgsql

    pdo_sqlite

    pgsql

    Phar

    posix

    protobuf

    readline

    redis

    反射

    セッション

    shmop

    SimpleXML

    石鹸

    ソケット

    ナトリウム

    SPL

    sqlite3

    standard

    swoole

    sysvmsg

    sysvssem

    sysvshm

    tokenizer

    xml

    xmlreader

    xmlrpc

    xmlwriter

    xsl

    Zend OPcache

    zip

    zlib

    なし

組み込み以外のプログラミング言語を使用する

説明

組み込み以外のプログラミング言語を使用するには、パブリックレイヤを使用することをお勧めします。 詳細については、「Function Computeコンソールでの共通レイヤーの設定」をご参照ください。

カスタムランタイムの組み込み以外の言語を使用してカスタムランタイムを作成する場合は、その言語のインタプリタまたはランタイムとコードファイルをパッケージに圧縮し、そのパッケージをFunction Computeにデプロイして、関数を期待どおりに実行できるようにする必要があります。 たとえば、ランタイム環境がNode.js 16の場合、Node.js 16に必要なインタプリタをダウンロードし、インタプリタとコードファイルをパッケージに圧縮してから、Function Computeにパッケージをデプロイする必要があります。 以下の手順を実行します。

  1. 64ビットLinuxバージョンのNode.jsをコードパッケージディレクトリにダウンロードします。

    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.jsの起動コマンドを設定します。

    customRuntimeConfig:
      command:
        - /code/node-v16.14.2-linux-x64/bin/node
      args:
        - 'server.js'
    
    # You can also configure environment variables for the function: 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. 
    # After the configuration is complete, you can directly use Node.js to start the HTTP server. 

依存関係のインストール

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

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