IBM Cloud Docs
関数ランタイム

関数ランタイム

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エンドポイントを保持する必要がある場合:

    • 新しいランタイムリリースを使用して、元の関数と同じソースコード(またはコードバンドル)に基づいて新しい関数を(テスト関数として)作成する
    • テスト関数が期待通りに動作することを確認する。 そうでない場合は、コードを修正してテスト関数を作り直す。
    • 新しいランタイムリリースと適合したソースコードを使用するように、元の関数を更新する。