2015-12-06 3 views
8

В AWS API Gateway, у меня есть метод GET, который вызывает функцию лямбды.AWS API Gateway: Выполнение не удалось из-за ошибки конфигурации: Нет подхожу для вывода отображения и вывода по умолчанию отображения не сконфигурированы

Когда я тестирую метод в панели управления шлюзом API, функция лямбда выполняется успешно, но шлюз API не отображает вызов 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

Возникла проблема при сохранении сопоставления ответов интеграции по умолчанию, которое было разрешено. Ошибка вызванных запросов к методам API, которые были сохранены неправильно возвращать ошибку 500, журналы CloudWatch должны содержать:

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

Поскольку «ВКЛЮЧИТЬ CORS» сохраняет ответ интеграции по умолчанию, этот вопрос также появился в вашем сценарии.

Для получения дополнительной информации, пожалуйста, обратитесь к записи AWS форумов: https://forums.aws.amazon.com/thread.jspa?threadID=221197&tstart=0

Бест,

Jurgen

1

Я нашел проблему:

Amazon была добавлена ​​новая кнопка в конфигурации ресурсов API-шлюз под названием 'Enable CORS. Ранее я нажал на эту кнопку, но как только активирован , похоже, что нет возможности отключить его.

Включение CORS с помощью этой кнопки (вместо того, чтобы делать это вручную, что я и делал) кажется, вызывает внутренний сервер ошибка даже на успешное выполнение лямбды.

enter image description here

РЕШЕНИЕ: Я удалил ресурс и создал его еще раз, не нажимая на «Включить CORS» на этот раз, и все работало нормально.

Это похоже на ошибку с этой функцией, но, возможно, я просто не знаю, насколько это хорошо. Прокомментируйте, если у вас есть дополнительная информация. Спасибо.

+1

Если это все еще актуально, но для удаления CORS требуется просто удалить OPTIONS methiod на ресурсе, а затем перераспределить ресурс. Нет необходимости удалять весь ресурс – aqwert

2

То, что работало для меня:
1. В Api Шлюз консоли созданный метод OPTIONS вручную
2. В разделе «Метод ответа» в созданном методе OPTIONS добавлено 200 OK
3.Выбранный метод опций и активированный CORS из меню

 Смежные вопросы

  • Нет связанных вопросов^_^