Не удается включить CORS на Lambda + API Gateway + Cloudfront на уровне Cloudfront

Я развернул лямбду, которая сама по себе возвращает заголовок 'Access-Control-Allow-Origin': '*' в своем ответе.

Я вызываю его из шлюза API. При вызове URL-адреса шлюза API конфигурация CORS в порядке.

Я разместил CloudFront перед API, однако теперь я не могу получить доступ к API, так как конфигурация CORS, похоже, переопределена CloudFront, и я не уверен, куда добавлять пользовательские заголовки в CloudFront.

Как включить CORS внутри CloudFront?


person David Alsh    schedule 22.07.2018    source источник


Ответы (1)


Войдите в свой дистрибутив CloudFront, щелкните варианты поведения, выберите каждое поведение и нажмите кнопку «Изменить». Вы увидите раздел с заголовками белого списка. Выберите «Access-Control-Request-Headers» и «Access-Control-request-methods» и нажмите «Добавить», также добавьте Origin (спасибо Майклу за уловку), щелкните правой кнопкой мыши «да, редактировать».

Изменить: см. Комментарий Майкла ниже относительно предотвращения кешированных ответов.

Вуаля.

person Mrk Fldig    schedule 22.07.2018
comment
Также Origin, я ожидал. - person Michael - sqlbot; 22.07.2018
comment
Это должно быть правильное решение. Вы также, вероятно, захотите изменить Минимальный TTL кэширования ошибок на 0, чтобы не пытаться устранять неполадки с кешированными ответы об ошибках. - person Michael - sqlbot; 23.07.2018