2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API Gatewayで「Lambda プロキシ統合の使用」をしてる時のステータスコード指定

Last updated at Posted at 2019-07-29

統合レスポンスなんか選択できないんだけど!!!

統合レスポンス

はい。大変困りました。統合レスポンスが無いとエラーコードを正規表現で仕分けできません。
原因はLambda プロキシ統合の使用です。
統合レスポンス2
原因がわかれば、一端それを切って見ましょう。
切りました
(望んでいないステータスで)エラーでました
Gateway error
戻しましょう。
プロキシ統合がなんか頑張ってくれてたおかげて私のAPIはエラー以外上手く言ってた事がわかりました。できればそのままにしたいです。

そもそもLambda側でエラーの出し方が間違ってるのでは?

Amazon API Gatewayで適切なHTTPステータスコードを返す方法[AWS] Lambda + API Gatewayでサーバレスを始める 2、さらにはAPI Gateway で Lambda エラーを処理する(公式ドキュメント)を見た結果,

index.js(lambda/nodejs/抜粋)
exports.handler = function(event, context, callback) {
    (略)
    callback(new Error(エラー文"));
};

みたいな事にするとエラーが作られるとの事。さっそく試してみましょう。
Gateway error2
だめでした。また、このエラーで一緒に出ることを望んでいたエラー文も出ていません。

解決

index.js(lambda/nodejs)
(略)
let response = {
        statusCode: 400,
        headers: {"Access-Control-Allow-Origin" : "*"},
        body:"エラー文",
    };
}
callback(null,response);

シンプルにこれでOKでした。
done
ちゃんと400で返ってきてます。

エラーもプロキシ統合がなんか上手いことやってくれてるんでしょうね。便利!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?