関数ランタイム
Code Engineには、管理されたランタイムが含まれています。
管理対象ランタイムには、 Node.js と Python のバージョン、および特定の CPU とメモリーの組み合わせが含まれます。 これらのランタイムは、高速始動用に最適化されています。 これらのランタイムは事前にウォームアップされているため、コンテナ・イメージのプルやコンテナやプロセスの起動を回避できる。 既に実行中のコンテナーにコードが注入されます。
コンテナー・イメージをデプロイする必要がありますか? アプリでの作業」または「ジョブおよびジョブ実行での作業」を参照してください。 作成する Code Engine ワークロードのタイプがわからない場合があります。 Code Engine の計画を参照してください。
Code Engine の機能でサポートされる管理対象ランタイム
以下のランタイムが管理対象ランタイムとしてサポートされています。
- Node.js 18とNode.js 20
- Python 3.11
関数でサポートされる CPU とメモリーの組み合わせ
機能の CPU とメモリーの有効な組み合わせについては、以下のリストを参照してください。
- 0.25 vCPU および 1 GB メモリー
- 0.0.5 vCPU、2GBメモリー
- 1 vCPU および 4 GB メモリ (Default)
メモリーと CPU の情報については、 サポートされるメモリーと CPU の組み合わせ を参照してください。
ランタイム・サポート・ライフサイクル
Code Engine関数のマネージド・ランタイムのサポート・ライフサイクルは、ベースとなるプログラミング言語リリースの公式サポート・サイクルに依存します。 関数が使用するランタイムが寿命に達すると、関数は動作しなくなる。 使用終了の前には、非推奨期間(通常6ヶ月)があり、その期間中、ユーザーが新しいランタイムリリースに移行する間、ランタイムはセキュリティアップデートを受け続ける。 次の表は、非推奨期限と使用終了日の一覧である:
のランタイム | 非推奨 | 有効期間終了 |
---|---|---|
Node.js 18 | 2024 年 10 月 1 日 | 2025 年 4 月 30 日 |
Node.js 20 | 1 2025年11月 | 2026年4月30日 |
Python 3.11 | 1 2027年5月 | 2027年9月30日 |
新しいランタイム・リリースへの関数のアップグレード
新しいランタイム・リリースには、APIを破壊するような変更が含まれている可能性があり、関数はコードの変更を必要とする可能性がある。 新しいランタイム・バージョンを使用するように既存の関数を更新するには、Code Engine ibmcloud ce function update --runtime
CLIコマンドを使用します。 即座に、新しい(選択された)ランタイムリリースをベースとして関数を実行する(=インプレース更新)。 したがって、本番コードではインプレース・アップデートを使用しないでください。
移行フェーズでテスト関数を作成する。
プロダクションコードの更新は、関数のURLが変更されてもよいのか、URLを維持しなければならないのかによって異なります:
-
機能のURLエンドポイントの変更が許容される場合:
- 新しいランタイムリリースを使用して、元の関数と同じソースコード(またはコードバンドル)に基づいて新しい関数を作成します。
- 新しい関数が期待通りに動作することを確認する。 そうでない場合は、ソースコードを修正し、関数を再構築する。
- 新しい関数のURLを使用し、以前のバージョンを削除する。
-
元の関数のURLエンドポイントを保持する必要がある場合:
- 新しいランタイムリリースを使用して、元の関数と同じソースコード(またはコードバンドル)に基づいて新しい関数を(テスト関数として)作成する
- テスト関数が期待通りに動作することを確認する。 そうでない場合は、コードを修正してテスト関数を作り直す。
- 新しいランタイムリリースと適合したソースコードを使用するように、元の関数を更新する。