AWS API Gateway для обслуживания контента S3 и Lambda

Я создал сертификат SSL с ACM. Я хотел бы использовать этот сертификат для обслуживания как моего статического контента из корзины S3, так и моих лямбда-выражений. В настоящее время я хочу избежать использования CloudFront и прокси-сервера как S3, так и Lambda с API-шлюзом, чтобы все обслуживалось из одного домена SSL (без проблем с CORS).

В идеале я позвоню:

https://my.customdomain.com/ (lambda redirects to /web/index.html)
https://my.customdomain.com/api/* (lambdas)
https://my.customdomain.com/web/* (static content - s3)

Разумна / возможна ли вышеуказанная архитектура?


comment
Имейте в виду, что точно такая же цель может быть достигнута с более высокой производительностью и значительно меньшими затратами, если использовать единый дистрибутив CloudFront для внешнего интерфейса как для вашего API, так и для корзины. (API-интерфейс шлюза 3,50 долл. США / млн. Долл. США для S3 по сравнению с требованием CF 1,00 долл. / Млн. Для S3.)   -  person Michael - sqlbot    schedule 18.09.2018
comment
Отличный совет @ Michael-sqlbot. Это определенно помогает в моем решении. Спасибо!   -  person KevinB    schedule 18.09.2018
comment
А будущим разработчикам также следует знать, что одна учетная запись AWS имеет мягкое ограничение в 200 дистрибутивов CloudFront и 100 корзин S3! Хотя CloudFront, безусловно, подходит для небольшого количества сайтов, запрошенная стратегия лучше подходит для работы с множеством разных сайтов и поддоменов.   -  person ohsully    schedule 15.04.2019


Ответы (1)


Да, архитектура возможна.

API Gateway преследует эту цель. Чтобы служить шлюзом для серверных служб, которые не доступны вашему клиенту. Одним из вариантов интеграции с API Gateway является Amazon S3.

В основном вы будете направлять ключ объекта к S3 и запрашивать этот объект с помощью вызовов API S3 (выполняемых API-шлюзом). Вам просто нужно предоставить API Gateway правильные разрешения для выполнения этого вызова с соответствующими учетными данными.

Вы можете найти информацию, необходимую для выполнения этой работы, здесь.

person Gustavo Tavares    schedule 17.09.2018