返された errorType は、エラーに設定された 'name' プロパティを表します。
したがって、次のコード:
var error = new Error('Its an error!');
error.name = 'TheName';
context.fail(error);
Lambda から API Gateway への次の応答が返されます。
{
"errorMessage": "Its an error!",
"errorType": "TheName",
"stackTrace": [
"exports.handler (/var/task/index.js:10:21)"
]
}
残念ながら、API Gateway は Error Regex を「errorMessage」プロパティにのみ一致させるようです。少なくとも私の試みとこれまで読んだことに基づいています。そのため、ステータス コードにマップしようとしている場合、エラー タイプを設定しても役に立ちません。(コメントで述べたように)
両方の世界を少しだけ取得する 1 つの方法は、context.fail を呼び出すときにエラーを "toString()" することです。これにより、エラー メッセージが "[名前]:[エラー メッセージ]" の形式になります。
次に、API Gateway Error Regex を特定のエラー「name」プロパティに一致させることができます。
だから呼び出す:
var error = new Error('Its an error!');
error.name = 'TheName';
context.fail(error.toString());
API Gateway Regex がステータス 500 にマッピングされた場合:
TheName.*
次のステータス 500 API Gateway レスポンスが返されます。
{
"errorMessage": "TheName: Its an error!"
}