Я использую AWS Serverless
для создания небольшого сайта с 15 лямбда-функциями.Мой стек Cloudformation полностью построен с использованием SAM
.
Я НЕ использую Lambda-прокси-интеграцию.
Раздел Api в конфигурации шаблона SAM
yaml выглядитнапример:
AppApi:
Type: AWS::Serverless::Api
Properties:
Cors:
AllowMethods: "'*'"
AllowHeaders: "'Content-Type'"
AllowOrigin: "'*'"
...........More Stuff..........
При развертывании этого шаблона SAM
yaml я вижу, что мой ApiGateway создал глагол OPTIONS для всех методов, и когда я снимаю запрос с помощью глагола OPTIONS, я вижу CORS
заголовки правильно.
Проблема в том, что другие глаголы (например, POST) не добавляют эти заголовки к своему ответу, как это сделал запрос OPTIONS, и когда я запускаю свой API из браузера, я получаю перекрестное происхождение.ошибка политики в моей консоли.
Поэтому мой текущий обходной путь - добавить заголовок CORS, используя интегрированные ответы на конкретные коды состояния, но я не могу и не хочу обрабатывать это для 15 методов, и я хочу поддерживать все состояния ответакоды (например, 4xx \ 5xx и т. д.).
Мои вопросы:
- Я что-то здесь не так делаю или это
SAM
ошибка? - Если это ошибка, есть ли другой способ, кроме добавления заголовков с использованием встроенных ответов (или из моего кода)?
- Есть ли способ добавить заголовки «глобально» из шлюза Api?Или поддерживать какие-то глобальные интегрированные ответы?