Создание многостраничного бессерверного приложения с использованием модели бессерверного приложения AWS Lambdas

Я новичок в модели бессерверных приложений для Интернета и хочу понять несколько вещей. Я ознакомился с учебным пособием AWS Building your firstless server и у меня есть пара вопросов. Я привык к модели MVC LEMP или к использованию .NET.

  1. В учебнике все страницы, к которым обращались, были статическими html, такими как app.com/login.html и app.com/ride.html. Так ли обстоят дела в бессерверном мире? Я понимаю, что лямбда и остальные API добавляют динамический контент.
  2. Как мне назвать страницы в моем браузере, чтобы вместо этого перейти с app.com/ride.html на app.com/ride-to-london?
  3. По сути, Lamdba похожа на простое написание Node.js?
  4. Есть ли способ, если все они являются отдельными html-страницами, сделать один глобальный макет? Любой совет шаблона макета будет полезен.
  5. Я хочу многостраничное приложение, например, этот сайт против Gmail (меньше ajaxy) и больше похожее на блог. Как это достигается? Учебник по этому вопросу будет helfpul.

Спасибо.




Ответы (1)


1) вы можете использовать современную инфраструктуру внешнего интерфейса, такую ​​​​как Angular, React, Vue и т. д., и статически размещать свой веб-сайт на S3. См. раздел Размещение статического веб-сайта на Amazon S3 для получения дополнительной информации. Затем ваш статический веб-сайт будет взаимодействовать через HTTP со шлюзом API. Затем вы сопоставляете свои лямбда-функции с событиями из шлюза API. Ознакомьтесь с этим руководством.

2) зависит от того, как с этим справляется фреймворк, выбранный на шаге 1)

3) это может быть NodeJS, Go, Python и другие поддерживаемые языки, если хотите. Каждый микросервис (лямбда-функция) может быть написан на отдельном языке. Для получения дополнительной информации о поддерживаемых языках см. часто задаваемые вопросы о Lambda.

4) опять же, зависит от выбранного вами фреймворка

5) это вам придется искать самостоятельно, но что-то вроде «Учебное пособие по блогу в {Framework of Choice}» должно подойти. Вот пример с использованием React

Теперь предположим, что вы развернули свое приложение, после чего вы можете использовать другие События, поддерживаемые AWS. Поскольку вы создаете пример блога, вы можете захотеть загрузить изображения в сам пост, чтобы он выглядел модно, но вы не хотите, чтобы пользователи мобильных телефонов загружали эти изображения с высоким разрешением, когда они только просматривают ваш блог, поэтому вы можете использовать событие S3 для создания миниатюры для вашего изображения, чтобы они могли предварительно просмотреть, прежде чем на самом деле щелкнуть, чтобы увидеть содержимое. Возможности безграничны.

Использование бессерверной модели для создания приложений также позволяет сразу создавать приложения, управляемые событиями. Эти приложения обладают высокой доступностью и автоматически масштабируются по умолчанию.

person Thales Minussi    schedule 04.03.2019
comment
Переходя на бессерверный путь и используя Vue. - person cdub; 05.03.2019
comment
Что касается пункта 1, меня недавно спросили, почему мы не обслуживаем статический контент через Lambda. Ясно, что я мог бы написать лямбду, которая просто брала бы URL-адрес и передавала его, но это казалось мне... странным, но будет ли это способом масштабирования статического контента? - person J. Gwinner; 14.01.2021
comment
Это хороший момент, @J.Gwinner. Я предлагаю вам заглянуть в эту ветку, так как она хорошо освещает ваш вопрос: static-content" title="почему я не должен использовать s3 вместо лямбда для статического контента"> stackoverflow.com/questions/44376491/ - person Thales Minussi; 15.01.2021