Создает ли отображение базового пути CloudFront Distribution

Использует ли отображение базового пути API в шлюзе API "скрытое" распределение облачного фронта?

У меня есть API на API-шлюзе, с базовыми сопоставлениями путей в домене. Тем не менее, это не проходит через облачный фронт - и, следовательно, нет https, только http.

Когда я пытаюсь создать дистрибутив облачного фронта для того же домена, он говорит что-то вроде "CNAME уже используется" и не может создать для него дистрибутив облачного фронта, даже если у меня нет связанных дистрибутивов облачного фронта. с доменом, и ничего на маршруте 53 для него тоже.

Если сопоставления базовых путей в API Gateway создают "скрытый" дистрибутив облачного фронта, который я не вижу на странице консоли дистрибуции CloudFront, - это имеет смысл. Я могу связать только один дистрибутив с одним CNAME одновременно.

Но это делает сопоставления базовых путей в API Gateway довольно бесполезными - они не позволяют мне распространять через облачный фронт и, следовательно, не могут использовать https для защиты собственного домена. Кажется, гораздо проще создать источник для облачного фронта (один для API), а затем назначить его таким образом.

Но я хотел подтвердить, действительно ли это так - создает ли базовые сопоставления путей API в API Gateway "скрытый" дистрибутив облачного фронта и блокирует использование домена CNAME другим дистрибутивом облачного фронта.

1 ответ

Я многое узнал об этом, подумал, что будет полезно поделиться.

API Gateway позволяет создавать оптимизированный по краям дистрибутив, который даже позволит вам использовать сертификат от ACM для его реализации. После того как вы привяжете CNAME к оптимизированному пограничному домену, создать для него дистрибутив облачного фронта невозможно - он вам не нужен, поскольку ваш APi уже находится в CloudFront.

Мой предпочтительный способ - не использовать сопоставления базовых путей вообще. Но используйте, чтобы сделать API источником для вашего дистрибутива Cloudfront, а затем используйте поведение (например, /api/v1/*) для перенаправления трафика из вашего дистрибутива в API.

очень важное замечание: если ваше поведение настроено на /api/v1 убедитесь, что ресурсы вашего шлюза API также начинаются с /api/v1 в противном случае вы получите ужасную ошибку отсутствующего токена аутентификации, самое загадочное и разочаровывающее сообщение об ошибке, известное человеку.

Этот отдельный дистрибутив CloudFront позволяет затем изменять другие варианты поведения (например, статические сайты и файлы) обычными способами. Метод отображения BasePath хорош только в том случае, если ваш API находится в своем собственном домене (например, api.example.com), и намного проще управлять версиями / этапами API через консоль для этого случая использования, если вы используете сопоставления базовых путей.

Развертывание CloudFront занимает около 40 минут для полного развертывания, что, как правило, является проблемой, когда вы знаете, где. Ни один вариант не идеален, но приятно знать тонкости.

Другие вопросы по тегам