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

Function Compute:関数インスタンスのライフサイクルフック

最終更新日:Nov 09, 2025

このトピックでは、カスタムランタイムで関数インスタンスのライフサイクルフックを実装する方法について説明します。

ライフサイクルフック

関数インスタンスのライフサイクルフックを設定すると、Function Compute はインスタンスのライフサイクルイベントが発生したときにフックを呼び出します。関数インスタンスには、Initializer、PreFreeze、PreStop のフックを設定できます。詳細については、「関数インスタンスのライフサイクル」をご参照ください。

パスリクエスト期待される応答
(オプション) POST /initialize

リクエスト本文: なし。

リクエストヘッダー: 共通リクエストヘッダー。詳細については、「Function Compute の共通リクエストヘッダー」をご参照ください。

応答本文: Initializer の戻り値。
ステータスコード
  • 2xx: 成功
  • その他のコード: 失敗
Python での initialize のサンプルコード:
@app.route('/initialize', methods=['POST'])
def init_invoke():
  rid = request.headers.get(x-fc-request-id)
  print("FC Initialize Start RequestId: " + rid)
  # ここで処理を実行します
  print("FC Initialize End RequestId: " + rid)
  return "OK"
Python で関数実行時にエラーが発生した場合のサンプルコード:
@app.route('/initialize', methods=['POST'])
def init():
    raise Exception("hahaha")
    return "OK", 200, []
@app.route('/initialize', methods=['POST'])
def init():
    return "OK", 404, []
(オプション) GET /pre-freeze応答本文: PreFreeze の戻り値。
ステータスコード
  • 2xx: 成功
  • その他のコード: 失敗
(オプション) GET /pre-stop応答本文: PreStop の戻り値。
ステータスコード
  • 2xx: 成功
  • その他のコード: 失敗
カスタムランタイムで Initializer フックを使用する場合は、HTTP サーバーでパスを /initialize に、メソッドを POST に設定するだけで済みます。前の表の initialize のサンプルコードをご参照ください。
重要 関数を作成するときに Initializer フックを設定しない場合は、パスを /initialize に設定する必要はありません。この場合、HTTP サーバーが /initialize を実装していても、コード内の /initialize ロジックを呼び出して実行することはできません。

PreFreeze フックと PreStop フックは、Initializer フックと同じ方法で使用されます。

エラーコード

エラーコード説明
400
  • Initializer フックが失敗した場合、400 または 404 エラーコードが返されます。この場合、Function Compute はリクエストを再送信せず、Initializer フックが成功するまで再試行します。
  • PreFreeze フックと PreStop フックが失敗した場合、400 または 404 エラーコードが返されます。この場合でも、関数インスタンスは期待どおりにフリーズまたは停止できます。
404
500Function Compute は関数インスタンスを再起動します。