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

Function Compute:エラー処理

最終更新日:Aug 28, 2024

このトピックでは、Node.jsランタイムのエラーを処理する方法について説明します。

エラータイプ

キャプチャ例外

関数の実行中に例外がスローされた場合、function Computeはエラーをキャプチャし、エラーメッセージ、タイプ、およびスタック情報を含むJSON形式のデータを生成します。 次のコードスニペットに例を示します。

ECMAScriptモジュール

説明
  • この例では、Node.js 18以降のみをサポートします。

  • サンプルコードはワンクリック展開をサポートしています。 サンプルコードは、ワンクリックでFunction Computeにデプロイできます。 nodejs-fc-err-es

export const handler = async (event, context) => {
  throw new Error('oops');
};

CommonJSモジュール

exports.handler = function(event, context, callback) {
  throw new Error('oops');
};

レスポンス例:

{
    "errorMessage": "oops",
    "errorType": "Error",
    "stackTrace": [
        "Error: oops",
        "    at handler (file:///code/index.mjs:2:9)",
        "    at module.exports (file:///var/fc/runtime/nodejs20/bootstrap.mjs:5655:14)",
        "    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
    ]
}

異常な出口

関数が実行中に終了すると、システムは一般的なエラーメッセージを返します。

ECMAScriptモジュール

説明

この例では、Node.js 18以降のみをサポートします。

export const handler = async (event, context) => {
  process.exit(1);
};

CommonJSモジュール

exports.handler = function(event, context, callback) {
  process.exit(1);
};

レスポンス例:

{
    "errorMessage": "Process exited unexpectedly before completing request (duration: 12ms, maxMemoryUsage: 0MB)"
}

トラブルシューティング

Function Computeがエラーを検出すると、HTTPステータスコード、応答メッセージ、およびエラーの原因を示す例外タイプが返されます。 関数を呼び出すクライアントまたはサービスは、コードでエラーを処理するか、エンドユーザーに渡すことができます。

次の一覧では、関数から受け取るステータスコードについて説明します。

  • 2xx

    2xx: Function Computeがリクエストを受け取りました。 レスポンスにX-Fc-Error-Typeヘッダーが含まれている場合、Function Computeはコードでスローされた例外などの関数エラーを検出しています。

  • 4xx

    4xx (429を除く): 呼び出しを開始したクライアントでエラーが発生しました。

    429: リクエストが抑制されます。

  • 5xx

    5xx: Function Computeで内部エラーが発生したか、関数設定が無効であるか、リソースの問題が存在します。

呼び出しエラーの詳細については、「再試行メカニズムの設定」をご参照ください。