S3 Хостинг + Api Gateway - PullRequest
       12

S3 Хостинг + Api Gateway

0 голосов
/ 27 декабря 2018

Я пытаюсь разместить статический сайт в S3 с возможностью обработки некоторого динамического контента с помощью Lambda / Api Gateway.Кажется, я не могу этого сделать.Я хочу, чтобы URL-адреса выглядели так:

example.com/index.html
example.com/images/*
example.com/css/*
example.com/api/* -> API Gateway 

Кроме того, при перенаправлении я хотел бы сохранить example.com в качестве корневого домена.Я попробовал RoutingRules в S3, но перенаправляет с клиента.Мне нужно, чтобы это было прозрачно для пользователя, например, проксирование запросов.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Хотя ответ Боба довольно понятен для общедоступных веб-сайтов и прост, но если вы ищете другие альтернативы, которые могут работать для внутренних сайтов или не хотите использовать CDN, вы можете попробовать следующие варианты.

Вариант 1 -

Это наиболее распространенный вариант, который люди предпочитают.Вы просто настраиваете два разных DNS-хоста для статического и API-интерфейса (при условии, что вы включили правильный CORS для * .example.com)

example.com (S3) -> S3 статическое содержимое

api.example.com (APIGateway) -> Lambda

Вариант 2 -

Example.com (APIGateway) -> / apigLambda -> Lambda

Example.com (APIGateway) -> / * -> S3 Bucket / S3 File.

Конфигурация шлюза API -

enter image description here

Бэкэнд-прокси API шлюза S3 -

enter image description here

Пример URL-адресов API -

https://xxx.execute -api.us-east-1.amazonaws.com / dev / apigLambda

https://xxx.execute -api.us-east-1.amazonaws.com /dev / myfilename.css

Ссылка -

https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html

Примечание. В приведенной выше ссылке Url имя сегмента принимается в пути URL-адресано в моем примере имя сегмента скрыто, поэтому пользователи не имеют представления об имени сегмента S3, когда видят URL-адрес шлюза API.

Вариант 3 -

В соответствии с вашим комментарием просто используйте {proxy +} в качестве ресурса для прокси-сервера S3 для поддержки вызовов подпапок, но, как вы и предлагали, создание простого сквозного прокси-сервера не дает много возможностей для преобразования тела ответа HTTP, что, как я считаювсе еще в порядке, так как вы знаете файлы содержимого вашего сайта.

0 голосов
/ 27 декабря 2018

Это можно настроить, поставив дистрибутив CloudFront перед API-интерфейсом шлюза API и корзиной S3 для статического содержимого.Это также позволит вам воспользоваться преимуществами кэширования краев CloudFront.

...