このトピックでは、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
組み込み以外のプログラミング言語を使用する
組み込み以外のプログラミング言語を使用するには、パブリックレイヤを使用することをお勧めします。 詳細については、「Function Computeコンソールでの共通レイヤーの設定」をご参照ください。
カスタムランタイムの組み込み以外の言語を使用してカスタムランタイムを作成する場合は、その言語のインタプリタまたはランタイムとコードファイルをパッケージに圧縮し、そのパッケージをFunction Computeにデプロイして、関数を期待どおりに実行できるようにする必要があります。 たとえば、ランタイム環境がNode.js 16の場合、Node.js 16に必要なインタプリタをダウンロードし、インタプリタとコードファイルをパッケージに圧縮してから、Function Computeにパッケージをデプロイする必要があります。 以下の手順を実行します。
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
カスタムランタイムで
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のレイヤーを使用して依存関係をインストールすることもできます。 パブリックレイヤーを使用するか、依存関係レイヤーをオンラインで構築することを推奨します。 詳細については、以下のトピックをご参照ください。