2015-12-06 17 views
8

AWS API Gatewayでは、ラムダ関数を呼び出すGETメソッドがあります。AWS API Gateway:設定エラーにより実行が失敗しました:出力マッピングと一致せず、デフォルト出力マッピングが設定されていません

APIゲートウェイダッシュボードでメソッドをテストすると、ラムダ関数は正常に実行されますが、API Gatewayはデフォルトマッピングがyesに設定されているにもかかわらず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を期待成功したラムダの実行を認識し、デフォルトでは200の応答にマップしますが、発生しないのは です。

これはなぜ動作しないのですか?

答えて

4

解決されたデフォルトの統合応答マッピングを保存するときに問題が発生しました。バグはCloudWatchのログが含まれている必要があり、500エラーを返すように間違って保存されたAPIメソッドに要求を引き起こした:

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=0

ベスト、私のために働いた何

ユルゲン

1

私は問題を発見:

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

このボタンを使用してCORSを有効にします(これを手動で行うのではなく) ラムダ実行に成功した場合でもエラーです。

enter image description here

SOLUTION:私は、リソースを削除し、この時間「CORSを有効にする」に をクリックせずに再作成し、すべてがうまく働きました。

これは、その機能のバグのようですが、多分私はちょうど は十分にそれを理解していません。詳しい情報があればコメントしてください。おかげさまで

+1

これがまだ関連していてもCORSを削除するには、単純にリソースのOPTIONSメソッドを削除してから、リソースを再デプロイします。リソース全体を削除する必要はありません – aqwert

2


1.アピゲートウェイコンソールでは、手動でOPTIONSメソッドを作成し
2.作成したOPTIONSメソッドのメソッド応答セクションに、200 OK
3を追加しました。選択されたオプションメソッドとメニューからCORSを有効にしました

関連する問題