Добавьте заголовки CORS в 5XX-ответах от API-шлюза с интеграцией Lambda-прокси - PullRequest
0 голосов
/ 02 мая 2018

У меня есть интеграция Lambda прокси с API-шлюзом, которая работает нормально.

CORS обрабатывается непосредственно в лямбда-коде с проверкой списков авторизованных доменов.

Но проблема теперь в непредвиденных ошибках во время выполнения лямбды.

В этом случае API-шлюз возвращает следующее сообщение:

{
    message: "Internal server error"
}

с 502 кодом статуса HTTP. К сожалению для меня, в этом ответе отсутствует заголовок Access-Control-Allow-Origin, что вызывает ошибки на стороне клиента.

То же самое происходит, например, с таймаутами. Тогда код состояния HTTP равен 504, но содержание ответа и отсутствие Access-Control-Allow-Origin совпадают.

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

Фиксированное значение '*' будет в порядке в случае лямбда-ошибок, но как и где это можно настроить?

1 Ответ

0 голосов
/ 08 мая 2018

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

callback(null, {
      statusCode: 200,
      headers: {
          'Content-Type': 'application/json',
          "Access-Control-Allow-Headers": "*",
          "Access-Control-Allow-Origin": "*",
      },
      body: JSON.stringify({ "response": true })
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...