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
基本的に、API Gatewayが成功したラムダ実行を認識し、デフォルトで200応答にマップすることを期待しますが、それは起こりません。
なぜこれが機能しないのか誰にもわかりますか?
解決されたデフォルトの統合応答マッピングを保存するときに問題が発生しました。バグにより、誤って保存された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=
ベスト、
ユルゲン
私は同様の問題を抱えていましたが、メソッドレスポンス200を追加することで解決しました
私のために働いたもの:
1。 Api Gateway ConsoleでOPTIONSメソッドを手動で作成しました
2。作成されたOPTIONSメソッドの下の[メソッド応答]セクションに200 OKが追加されました
3。メニューから選択されたオプション方法と有効なCORS
私は問題を見つけました:
Amazonは、「Enable CORS」というタイトルの新しいボタンをAPI-Gatewayリソース構成に追加しました。私は以前にこれをクリックしましたが、一度有効にすると無効にする方法はないようです
このボタンを使用してCORSを有効にすると(最終的に手動で行うのではなく)、ラムダの実行が成功しても内部サーバーエラーが発生するようです。
解決策:今回は「CORSを有効にする」をクリックせずにリソースを削除し、再度作成しましたが、すべて正常に機能しました。
これはその機能を備えたバグのようですが、おそらく十分に理解されていないようです。さらに情報がある場合はコメントしてください。ありがとう。