Сопоставление вывода лямбды с заголовком шлюза API


Я пытаюсь сопоставить выходные данные JSON из лямбда-функции с заголовком вызова шлюза API. В качестве примера здесь мы можем рассмотреть сценарий перенаправления. Поэтому я хотел бы добавить заголовок Location в ответ на мой вызов шлюза API.

Вывод JSON из лямбда-функции:

{
    Location: 'http://google.com'
}

В "Method Response" - >" Response Headers " я могу добавить заголовок Location в нужный код состояния HTTP.

Затем в "Integration Response" - > "Header Mappings" я могу добавить отображение для Location заголовок должен быть чем-то.

Теперь мой вопрос заключается в том, каким должно быть это нечто?

Примечание: я пробовал integration.response.header.Location или использовать "шаблоны отображения", но пока безуспешно.

Есть вероятность, что в данный момент это невозможно (https://forums.aws.amazon.com/thread.jspa?messageID=651482 ), но поскольку API Gateway / Lambda развиваются так быстро на данный момент, я все равно спрошу.

4 19

4 ответа:

Из форума разработчиков AWS сегодня (25 сентября 2015 г.) это пока невозможно, но может произойти в будущем:

API Gateway в настоящее время не поддерживает отображение из тела ответа интеграции в заголовки ответа, но мы надеемся добавить поддержку для этого в будущем.

Сообщение на форуме здесь

Edit December 2015 : функция, добавленная в соответствии с сообщением сотрудника AWS в потоке, связанном выше. Благодаря Питер Фокс за то, что указал на это.

На сегодняшний день (январь 2016 года) он работает, просто указав integration.response.body.Location в вашем случае.

Сегодня (12 ноября 2015 г.) я искал способ передачи заголовка Location из моего серверного API в заголовок Location в Integration response.

Эта конфигурация работала, и я мог получить заголовок Location из backend api:

Введите описание изображения здесь

Похоже, что решение, предложенное Тобиасом, в настоящее время возможно. Однако заголовок Location указывает на backend API, и это не то, что нам нужно. Я постараюсь найти решение для этого и разместить его здесь.

На самом деле, похоже, что вы можете получить доступ ко всем заголовкам, предоставленным исходным ответом (если он содержит Content-type, то вы можете ввести : integration.ответ.заголовок.Content-type ). Однако я не нашел никакого способа добавить новый заголовок (кроме статического).