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

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

最終更新日:Jan 16, 2025

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

ライフサイクルフック

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

次の表に、Initializerフックを示します。 PreFreezeフックとPreStopフックも同様に機能します。

パス

入力リクエスト

期待される応答

(オプション) POST /initialize

リクエスト本文: なし。

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

レスポンス本文: Initializerの戻り値。

StatusCode

  • 200: successed.

  • 404: failed.

Pythonでのinitializeのサンプルコード:

@app.route('/initialize', methods=['POST'])
def init_invoke():
  rid = request.headers.get(x-fc-request-id)
  print("FC Initialize Start RequestId: " + rid)
  # do your things
  print("FC Initialize End RequestId: " + rid)
  return "OK"

(オプション) GET /pre-freeze

レスポンス本文: PreFreezeの戻り値。

StatusCode

  • 200: successed.

  • 404: failed.

(オプション) GET /pre-stop

レスポンス本文: PreStopの戻り値。

StatusCode

  • 200: successed.

  • 404: failed.

カスタムランタイムでInitializerフックを使用する場合は、HTTPサーバーで /initializeパスとPOSTメソッドを使用して対応するロジックを実装する必要があります。 前の表のinitializeのサンプルコードを参照できます。

重要

関数の作成時にInitializerフックを設定しない場合は、/initializeを実装する必要はありません。 この場合、HTTPサーバーが /initializeを実装していても、コード内の /initializeロジックを呼び出して実行することはできません。