Используйте API Gateway для создания нескольких дистрибутивов CloudFront - PullRequest
0 голосов
/ 14 марта 2020

У меня есть набор сайтов c, которые мне нужно разместить на одном домене, но каждый сайт c действует как отдельное приложение и не разделяет свою кодовую базу, поэтому он фактически отдельный сайт.

Примером макета может быть:

Каждый из этих пунктов является отдельным angular приложением, которое работает полностью изолированно от другого.

Я использую terraform для развертывания всех этих приложений, но это не должно иметь значения для найти решение этой проблемы, поскольку все, что мне нужно и абсолютно необходимо, - это чтобы каждое приложение развертывалось отдельно, и хотя я могу обмениваться такими вещами, как «arns» и «идентификаторы ресурсов» и «имена сегментов», я не могу делиться артефактами развертывания , Мне нужно полностью перестроить все, чтобы это произошло. Так что это не то, чего я хочу, и это никогда не случится. Так что это не вариант для меня.

По этой причине я не могу использовать один дистрибутив CloudFront и устанавливать несколько источников, потому что я могу только создать один дистрибутив со всеми источниками в одной конфигурации файл, нарушающий правило о неразглашении кода или артефактов развертывания.

Итак, я пытаюсь использовать вместо этого API-шлюз, мой план состоял в том, чтобы создавать источники и создавать интеграции для каждого ресурса, чтобы использовать дистрибутивы CloudFront, развернутые для каждого ресурса, это, похоже, работает, но я не уверен как создать URI / действия для интеграции, необходимые для пересылки запросов в дистрибутив CloudFront в пользовательском домене из шлюза API.

При попытке создать новый ресурс вручную я перехожу к шагу интеграции и m спросил следующее:

  • Тип интеграции (AWS Сервис)
  • AWS Регион (eu-west-1)
  • AWS Сервис ( CloudFront)
  • AWS Субдомен (Не уверен, что это субдомен CloudFront, например oiuyqweonienvoq.cloudfront. net, часть "oiuyqweonienvoq"?)
  • HTTP-метод (GET в этом case)
  • Действие (GetObject?)
  • Роль выполнения (полагаю, arn_of_api_gateway_role?)

Затем, когда я пробую эту конечную точку, я получаю внутреннюю ошибку сервера 500 , Я уверен, что приведенные выше параметры конфигурации не верны. Но если я попытаюсь получить доступ к дистрибутиву CloudFront напрямую. Хотя приложение не очень хорошо работает, я получаю то, что считаю нормальным ответом. Единственная проблема заключается в том, что мне нужно обновить некоторые пути.

Кто-нибудь знает, как правильно прокси-запросы через API-шлюз в пользовательский дистрибутив CloudFront?

...