2017-04-11 7 views
1

私はAWS APIメールサービスを構築しています。必要なすべてのパラメータが存在するかどうかをチェックし、データが必要なものと一致するかどうかを確認します。ラムダがエラーを返す場合でもAWS API Gatewayは200を返します

問題は、ラムダ関数が(私はラムダテストインタフェースを使用して検証)エラーをスローした場合でも、APIゲートウェイがあることを意味体

としてエラーオブジェクトと200応答コードを返すこと、です私はこのようなログを取得することを:ので最後の部分の

Tue Apr 11 14:23:43 UTC 2017 : Method response body after transformations: 
{"errorMessage":"\"[BadRequest] Missing email\""} 
Tue Apr 11 14:23:43 UTC 2017 : Method response headers: {X-Amzn-Trace-Id=Root=************, Content-Type=application/json} 
Tue Apr 11 14:23:43 UTC 2017 : Successfully completed execution 
Tue Apr 11 14:23:43 UTC 2017 : Method completed with status: 200 

を、私はAPIゲートウェイが200を返していると信じています。

私は、エラー処理を設定するには、物事のカップルがやった:enter image description here

  • は、私は、エラーコードのための第2の積分応答を追加しました::
    • 私は、エラーコードのための第二の方法応答を追加しましたenter image description here

    この時点で、まだ正しい応答を返さない理由がわかりません。私はこれに関するさまざまな投稿をチェックし(Is there a way to change the http status codes returned by Amazon API Gateway?How to return error collection/object from AWS Lambda function and map to AWS API Gateway response codeなど)、ドキュメントを読んでください。

    私はまた、「ラムダプロキシ・ウェイ」を試してみましたが、それはどんな結果が得られなかった(ラムダは「すべてそのように正しく実行されませんでした。

    誰もが私がここで行方不明ですか見ていますか?

  • 答えて

    1

    私が問題を引き起こしている可能性があります物事のカップルを見

    あなたのエラーメッセージが引用されている:。"\"[BadRequest] Missing email\""、そう^[BadRequest]正規表現は、エラー文字列と一致しません、私は走った簡単なテストでは、私は脱出しなければなりませんでした。 [](つまり\[\])大括弧は文字クラス用に予約されているためses。

    あなたにErrorMessageの書式を変更することなく、このようなパターンは動作するはずです: は ^"\[BadRequest\].*

    +1

    はい、それはそれです。これを基にしたチュートリアルは括弧を外していませんでした。ありがとう、その日を救った! – Lodybo

    関連する問題