web-dev-qa-db-ja.com

AWS API Gateway:設定エラーが原因で実行に失敗しました:出力マッピングが一致せず、デフォルトの出力マッピングが設定されていません

AWS API Gatewayには、ラムダ関数を呼び出すGETメソッドがあります。

API Gatewayダッシュボードでメソッドをテストすると、ラムダ関数は正常に実行されますが、デフォルトのマッピングがyesに設定されているにもかかわらず、API Gatewayはcontext.success()呼び出しを200の結果にマッピングしません。

代わりに、私はこのエラーを受け取ります:

Execution failed due to configuration error: No match for output mapping and no default output mapping configured

これは私の統合応答のセットアップです: enter image description here

そして、これは私のメソッド応答のセットアップです: enter image description here

基本的に、API Gatewayが成功したラムダ実行を認識し、デフォルトで200応答にマップすることを期待しますが、それは起こりません。

なぜこれが機能しないのか誰にもわかりますか?

13
Zigglzworth

解決されたデフォルトの統合応答マッピングを保存するときに問題が発生しました。バグにより、誤って保存されたAPIメソッドへのリクエストにより500エラーが返されました。CloudWatchログには次の情報が含まれている必要があります。

Execution failed due to configuration error: 
No match for output mapping and no default output mapping configured. 

「ENABLE CORS」はデフォルトの統合応答を保存するため、この問題もシナリオに現れました。

詳細については、AWSフォーラムエントリを参照してください: https://forums.aws.Amazon.com/thread.jspa?threadID=221197&tstart=

ベスト、

ユルゲン

6
Jurgen

私は同様の問題を抱えていましたが、メソッドレスポンス200を追加することで解決しました

4
raaone7

私のために働いたもの:
1。 Api Gateway ConsoleでOPTIONSメソッドを手動で作成しました
2。作成されたOPTIONSメソッドの下の[メソッド応答]セクションに200 OKが追加されました
3。メニューから選択されたオプション方法と有効なCORS

2
Tapirek

私は問題を見つけました:

Amazonは、「Enable CORS」というタイトルの新しいボタンをAPI-Gatewayリソース構成に追加しました。私は以前にこれをクリックしましたが、一度有効にすると無効にする方法はないようです

このボタンを使用してCORSを有効にすると(最終的に手動で行うのではなく)、ラムダの実行が成功しても内部サーバーエラーが発生するようです。

enter image description here

解決策:今回は「CORSを有効にする」をクリックせずにリソースを削除し、再度作成しましたが、すべて正常に機能しました。

これはその機能を備えたバグのようですが、おそらく十分に理解されていないようです。さらに情報がある場合はコメントしてください。ありがとう。

1
Zigglzworth