このトピックでは、Function Computeで関数を記述できるカスタムランタイムについて説明します。
背景
カスタムランタイムを使用すると、ランタイム環境をカスタマイズできます。 カスタムランタイムでは、ビジネス要件に基づいて排他的関数実行環境を作成できます。 以下の項目は、一般的なシナリオを示します。
Rustなどの個別のプログラミング言語をカスタマイズします。
Node.js 16などのプログラミング言語の指定されたバージョンのランタイムをカスタマイズします。
コンテナ環境
次の表に、カスタムランタイムでサポートされているコンテナー環境を示します。
ランタイム | ID | オペレーティングシステム | アーキテクチャ |
カスタムランタイム (Debian10) | custom.de bian10 | デビアン10 | x86_64 |
カスタムランタイム | custom | Debian 9 | x86_64 |
カスタムランタイム (Debian10)
ユーザー権限: 関数はルートユーザーによって実行される必要があります。
ディレクトリ権限: データは任意のディレクトリに書き込むことができます。
コンテナー内のコードの場所: /Code。
カスタムランタイム
ユーザー権限
2021年12月1日00:00:00以降に関数を作成する場合、関数はルートユーザーが実行する必要があります。
2021年12月1日00:00:00より前に関数が作成された場合、関数はroot以外のユーザーが実行する必要があります。
ディレクトリ権限
2021年12月1日00:00:00以降に関数が作成された場合、データは任意のディレクトリに書き込むことができます。
2021年12月1日00:00:00より前に関数が作成された場合、データは /tmpディレクトリにのみ書き込まれます。
コンテナー内のコードの場所: /Code。
環境情報
カスタムランタイム (Debian10)
次のプログラミング言語は、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 | 非該当 |
カスタムランタイム
次のプログラミング言語は、カスタムランタイムに組み込まれています。 サードパーティ製のインタプリタをインストールしたり、レイヤーを設定したりすることなく、次の言語のカスタムランタイムを作成できます。
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にデプロイして、関数を期待どおりに実行できるようにする必要があります。 たとえば、ランタイム環境が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' # 関数の環境変数を設定することもできます: 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:/sbin:/bin:/usr/local/ruby/bin。 # 設定が完了したら、Node.jsを直接使用してHTTPサーバーを起動できます。
依存関係のインストール
カスタムランタイムに各プログラミング言語の依存関係をインストールする方法の詳細については、以下のトピックを参照してください。
Node.js
Python
PHP
組み込み以外のPHP拡張機能のインストール
Function Computeのレイヤーを使用して依存関係をインストールすることもできます。 パブリックレイヤーを使用するか、依存関係レイヤーをオンラインで構築することを推奨します。 詳細については、以下のトピックをご参照ください。