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

Function Compute:仕様の詳細

最終更新日:Sep 02, 2024

このトピックでは、カスタムランタイムの一般的なリクエストヘッダー、HTTPステータスコード、レスポンスヘッダー、およびログ形式について説明します。

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

次の表に、Function Computeがカスタムランタイムに転送する一般的なリクエストヘッダーを示します。 他のAlibaba Cloudサービスにアクセスする場合は、一時的なAccessKeyペアを指定するリクエストヘッダーを使用する必要があります。 既存のアプリケーションをFunction Computeに移行する場合、次の情報は無視してください。

説明
  • イベント関数とHTTP関数の両方に共通のリクエストヘッダーが含まれます。
  • Function Computeは、権限と関数に関する基本情報を含む共通のリクエストヘッダーを生成します。
ヘッダー説明
x-fc-request-idリクエストの ID。
x-fc-access-key-id一時的なAccessKey ID。
x-fc-access-key-secret一時的なAccessKeyシークレット。
x-fc-security-token一時的なセキュリティトークン。
x-fc-function-handler関数のハンドラー。The handler of the function. ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。
x-fc-function-memory関数が使用できる最大メモリ。
x-fc-function-initializerInitializerフックのハンドラー。 ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。
x-fc-initialization-timeoutInitializerフックのタイムアウト期間。
x-fc-instance-lifecycle-pre-stop-handlerPreStopフックのハンドラー。The handler of the PreStop hook. ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。
x-fc-instance-lifecycle-pre-freeze-handlerPreFreezeフックのハンドラー。 ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。
x-fc-region関数が存在するリージョン。
x-fc-account-id関数所有者のユーザーID (UID) 。
x-fc-qualifier関数を呼び出すときに指定するサービスのバージョンまたはエイリアス。 詳細については、「バージョンとエイリアスを使用してカナリアリリースを実装する」をご参照ください。
x-fc-version-id関数を呼び出すときに指定するサービスのバージョン。
x-fc-関数名関数の名前。
x-fc-service-name関数が属するサービスの名前。
x-fc-service-logproject関数が属するサービスに対して設定されているLog Serviceプロジェクト。
x-fc-service-logstore関数が属するサービスに対して設定されているLog Service Logstore。
x-fc-control-path関数のリクエストタイプ。
カスタムランタイムまたはカスタムコンテナーの場合、このパラメーターの値に基づいて、HTTP関数またはイベント関数を呼び出すリクエストを送信したかどうかを確認できます。 有効な値:
  • /invoke: イベント関数を呼び出すためにリクエストが送信されます。
  • /http-invoke: リクエストはHTTP関数を呼び出すために送信されます。 Function Computeは、リクエストパス、リクエスト本文、およびリクエストヘッダーを含む共通ヘッダーをリクエストに追加し、そのリクエストをカスタムランタイムまたはカスタムコンテナーに転送します。 次に、Function Computeは、クライアントに返される応答ヘッダーと本文を転送します。
  • /initialize: 初めてランタイム環境を作成すると、Function Computeが自動的に初期化フックを呼び出すリクエストを開始します。 クラスコンストラクターと同様に、Initializerフックは、コンテナーのライフサイクル中に1回だけ呼び出すことができます。

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

カスタムランタイムはHTTPサーバーとして機能します。 各関数の呼び出しは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レスポンスでStatusCodeおよびx-fc-statusフィールドを指定することを推奨します。

関数ログ形式

Function Computeでサービスを作成するときは、ログを有効にすることを推奨します。 これにより、システムが生成するすべてのstdoutログは、指定されたLog Serviceプロジェクトに保存されます。 詳細は、「ロギングの設定」をご参照ください。

Function Computeがカスタムランタイムまたはカスタムコンテナーではないランタイムで関数を呼び出し、リクエストにx-fc-log-type " = " Tail "ヘッダーが含まれている場合、x-fc-log-resultヘッダーを含むレスポンスは、システムが関数を呼び出したときにシステムが生成するログです。 ログの最大サイズは4 KBです。 Function Computeコンソールで関数呼び出しの結果のログを表示できます。 コンソールで関数呼び出しの結果にカスタムランタイムのログを表示する場合は、コードにリクエストの開始ログと終了ログを記録する必要があります。

ログ必須コード形式
ランタイムの開始任意
説明 関数のコールドスタートフラグが記録されます。
FunctionCompute ${runtime} ランタイムinited。
説明 ${runtime} パラメーターにカスタム値を指定できます。 Function Computeでは、Node.js、Python、PHPなどの公用語名を指定しないことを推奨します。
関数呼び出しの開始ログ必須FC Invoke Start RequestId: ${RequestId}
関数呼び出しの終了ログ必須FC Invoke End RequestId: ${RequestId}
関数初期化の開始ログ任意
説明 初期化機能を使用する場合は、このログを記録します。
FC Initialize Start RequestId: ${RequestId}
関数初期化の終了ログ任意
説明 初期化機能を使用する場合は、このログを記録します。
FC Initialize End RequestId: ${RequestId}

今後の診断のためにログにリクエストIDも含めることをお勧めします。ログのリクエストIDは $utcdatetime(yyyy-MM-ddTHH:mm:ss.fff) $requestId [$Level] $message形式です。

説明 ログレベルを指定するために実行できるAPI操作は、プログラミング言語によって異なります。 詳細については、「基本」をご参照ください。

関連ドキュメント