このトピックでは、カスタムランタイムの一般的なリクエストヘッダー、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-initializer | Initializerフックのハンドラー。 ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。 |
x-fc-initialization-timeout | Initializerフックのタイムアウト期間。 |
x-fc-instance-lifecycle-pre-stop-handler | PreStopフックのハンドラー。The handler of the PreStop hook. ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。 |
x-fc-instance-lifecycle-pre-freeze-handler | PreFreezeフックのハンドラー。 ランタイムがカスタムランタイムやカスタムコンテナなどの関数の場合、値は無意味であり、ランダムな文字列に設定できます。 |
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関数またはイベント関数を呼び出すリクエストを送信したかどうかを確認できます。 有効な値:
|
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の可観測性は影響を受けます。 次の図に例を示します。x-fc-status
フィールドに値を指定した場合、システムはx-fc-status
フィールドを使用して関数呼び出しの失敗をfunction Computeに報告します。 関数の呼び出し中にエラーが発生した場合、システムはエラースタック情報をログに記録します。 次の図に例を示します。
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
形式です。