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

Function Compute:仕様

最終更新日:Nov 09, 2025

このトピックでは、カスタムランタイム環境の作成に使用できる共通リクエストヘッダー、レスポンスコード、レスポンスヘッダー、およびログフォーマットについて説明します。

Function Compute の共通リクエストヘッダー

次の表に、カスタムランタイムが Function Compute から受け取る共通リクエストヘッダーをリストします。他の Alibaba Cloud サービスにアクセスするには、一時的な AccessKey ヘッダーが必要になる場合があります。既存のアプリケーションを移行する場合、この情報は無視できます。

説明
  • イベント関数と HTTP 関数の両方に共通ヘッダーが含まれます。

  • Function Compute は共通リクエストヘッダーを自動的に生成します。これらのヘッダーには、主に権限と基本的な関数情報が含まれます。

ヘッダー

説明

x-fc-request-id

リクエスト ID。

x-fc-access-key-id

一時的な AccessKey ID。

x-fc-access-key-secret

一時的な AccessKey Secret。

x-fc-security-token

一時的なセキュリティトークン。

x-fc-function-handler

関数のハンドラ。カスタムランタイムやカスタムコンテナー関数のように、ランタイム自体が関数である場合、この値は意味がありません。ランダムな文字列に設定してください。

x-fc-function-memory

関数が使用できる最大メモリ。

x-fc-function-initializer

Initializer 関数のハンドラ。カスタムランタイムやカスタムコンテナー関数のように、ランタイム自体が関数である場合、この値は意味がありません。ランダムな文字列に設定してください。

x-fc-initialization-timeout

Initializer 関数の実行のタイムアウト期間。

x-fc-instance-lifecycle-pre-stop-handler

PreStop 関数のハンドラ。カスタムランタイムやカスタムコンテナー関数のように、ランタイム自体が関数である場合、この値は意味がありません。ランダムな文字列に設定してください。

x-fc-instance-lifecycle-pre-freeze-handler

PreFreeze 関数のハンドラ。カスタムランタイムやカスタムコンテナー関数のように、ランタイム自体が関数である場合、この値は意味がありません。ランダムな文字列に設定してください。

x-fc-region

関数が配置されているリージョン。

x-fc-account-id

関数オーナーの UID。

x-fc-qualifier

関数呼び出し時に指定されたサービスバージョンまたはエイリアス。詳細については、「バージョンとエイリアスを使用して段階的リリースを実装する」をご参照ください。

x-fc-version-id

関数呼び出し時に指定されたサービスバージョン。

x-fc-function-name

関数名。

x-fc-service-name

関数が配置されているサービスの名前。

x-fc-service-logproject

関数が配置されているサービスに構成されたログプロジェクト。

x-fc-service-logstore

関数が配置されているサービスに構成された Logstore。

x-fc-control-path

関数のリクエストタイプ。

カスタムランタイムまたはカスタムコンテナーの場合、ヘッダーのパラメーターに基づいて、関数呼び出しが HTTP 関数用かイベント関数用かを判断できます。パラメーター情報は次のとおりです。

  • /invoke: このリクエストはイベント関数の呼び出しです。/invoke は、Invoke 関数の呼び出しリクエストを示します。

  • /http-invoke: このリクエストは HTTP 関数の呼び出しです。/http-invoke は、HTTP invoke 関数の呼び出しリクエストを示します。Function Compute は、パス、本文、ヘッダーを含むリクエストを、共通ヘッダーとともにカスタムランタイムまたはカスタムコンテナーに転送します。カスタムランタイムまたはカスタムコンテナーから返されたレスポンスヘッダーと本文は、クライアントに返されます。

  • /initialize: /initialize は、実行環境が初めて作成されるときに Function Compute が自動的に開始する Initialize 関数の呼び出しリクエストを示します。これは、クラスのコンストラクターと同様に、コンテナーのライフサイクル中に一度だけ正常に呼び出されます。

Function Compute のレスポンスコードとレスポンスヘッダー

カスタムランタイムは、本質的にはユーザーが実装する HTTP サーバーです。したがって、各関数呼び出しは HTTP リクエストであり、各レスポンスにはレスポンスコードとレスポンスヘッダーがあります。

  • レスポンスコード StatusCode

    • 200: 成功ステータス。

    • 404: 失敗ステータス。

  • レスポンスヘッダー x-fc-status

    • 200: 成功ステータス。

    • 404: 失敗ステータス。

x-fc-status レスポンスヘッダーを使用して、ローカル関数が正常に実行されたかどうかを Function Compute にレポートします。

  • x-fc-status が設定されていない場合、Function Compute はデフォルトで呼び出しが成功したと見なします。ただし、関数で例外が発生し、それが Function Compute にレポートされない場合があります。この場合でも、Function Compute は実行が成功したと見なします。これはビジネスロジックに影響しないかもしれませんが、モニタリングと可観測性に影響します。次の図に例を示します:image8hanshujisuanruntime

  • x-fc-status が設定されている場合: 関数で例外が発生した場合、x-fc-status レスポンスヘッダーを使用して実行の失敗を Function Compute にレポートできます。また、エラーのスタック情報をログに出力することもできます。次の図に例を示します:image9runtimefc

説明

HTTP レスポンスに StatusCodex-fc-status の両方を設定してください。

関数ログのフォーマット

サービスを作成するときに、ロギング機能を有効にできます。カスタムランタイムの標準出力 (stdout) に出力されたすべてのログは、指定した Simple Log Service に自動的に収集されます。詳細については、「ログの構成」をご参照ください。

Function Compute がカスタムランタイムおよびカスタムコンテナー以外のランタイム環境で関数を呼び出すとき、リクエストヘッダーに x-fc-log-type: Tail が含まれている場合、返される x-fc-log-result レスポンスヘッダーには、関数の実行中に出力されたログが含まれます。ログサイズは 4 KB に制限されています。これらのログは、Function Computeコンソール の関数実行結果で表示できます。コンソールの実行結果でカスタムランタイムのランタイムログを表示したい場合は、コード内でリクエストの開始ログと終了ログを記録する必要があります。

重要

HTTP トリガーを使用して関数を匿名で呼び出す場合、リクエストヘッダーに x-fc-log-type: Tail を含めると、機密情報が漏洩する可能性があります。これを防ぐには、認証を有効にします。詳細については、「認証」をご参照ください。

ログの内容

必須

コード

ランタイムの開始

いいえ

説明

この内容は、関数のコールドスタートのフラグです。

FunctionCompute ${runtime} runtime inited.

説明

${runtime} はカスタム言語タイプを指定します。Node.js、Python、PHP などの公式の Function Compute 言語名を使用しないことをお勧めします。

Invoke 開始のログ

はい

FC Invoke Start RequestId: ${RequestId}

Invoke 終了のログ

はい

FC Invoke End RequestId: ${RequestId}

Initialize 開始のログ

いいえ

説明

Initializer 関数に必要です。

FC Initialize Start RequestId: ${RequestId}

Initialize 終了のログ

いいえ

説明

Initializer 関数に必要です。

FC Initialize End RequestId: ${RequestId}

上記の情報に加えて、問題の診断に役立つように、ログにリクエスト ID を含めてください。推奨されるログフォーマットは $utcdatetime(yyyy-MM-ddTHH:mm:ss.fff) $requestId [$Level] $message です。

説明

ログレベルを指定するためのインターフェイスは言語によって異なります。ランタイム環境に基づいてログレベルを設定する必要があります。詳細については、「基本情報」をご参照ください。

関連ドキュメント

カスタムランタイム環境、さまざまな言語の起動コマンドとパラメーター構成、およびインスタンスのライフサイクルフック関数の構成の詳細については、次のトピックをご参照ください。