edit-icon download-icon

エラーメッセージ

最終更新日: Jun 22, 2018

関数実行中に 2 種類のエラーが発生することがあります。

  • Handled error:ユーザー関数によって自主的に取得され、コールバックによって返されるエラー。
  • Unhandled error:構文エラー、 リクエストタイムアウト、メモリ不足などの、ユーザー関数によって取得されないエラー。

Function Compute はエラーを JSON 文字列にエンコードし、呼び出し元に返します。

Handled Error

ユーザー関数がエラーを取得して callback(err) で返すとき、err パラメーター が Error 型のオブジェクトである場合、スタックトレースも返されます。

  1. // User function.
  2. exports.handler = function(event, context, callback) {
  3. var error = new Error("something is wrong");
  4. callback(error);
  5. };
  6. // Function response.
  7. {
  8. "errorMessage": "something is wrong",
  9. "errorType": "Error",
  10. "stackTrace": [
  11. "export.handler (/var/task/index.js.3:16)"
  12. ]
  13. }

callback パラメーターがエラーではないオブジェクトの場合、スタックトレースは返されません。

  1. // User function.
  2. exports.handler = function(event, context, callback) {
  3. callback("something is wrong");
  4. };
  5. // Function response.
  6. {
  7. "errorMessage": "something is wrong"
  8. }

Unhandled Error

ユーザー関数がエラーを取得しない場合、Function Compute は可能な限りエラーを取得しようとし、詳細情報を返します。たとえば、ユーザー関数が予期せずクラッシュして実行中に終了するなど、システムがエラーの取得に失敗した場合、システムは一般的なエラーを返します。

一般的なエラーシナリオ

エラータイプ シナリオ エラー情報
Handled callback(err) によって返されるエラー。err の型は Error です。 {“errorMessage”: “oops”, “errorType”: “Error”, “stackTrace”: [“exports.handler (/var/task/index.js:5:14)”]}
Handled callback(obj) によって返されるエラー。obj はエラーではないオブジェクトです。 {“errorMessage”: “oops”}
Unhandled 関数が依存するモジュールが存在しません。 {“errorMessage”: “Cannot find module ‘/code/X.js”}
Unhandled 指定されたハンドラ関数が存在しません。 {“errorMessage”: “Handler ‘X’ missing on module ‘Y’”}
Unhandled 関数の実行がタイムアウトします。 {“errorMessage”: “Task timed out after X seconds”}
Unhandled 別のユーザープログラムに関連して処理されるエラー。 {“errorMessage”: “Process exited unexpectedly before completing request”}