Что такое бессерверная платформа?



Книга Что такое бессерверная платформа?

Понятие о бессерверной платформе


Бессерверная платформа помогает разрабатывать и развёртывать функции AWS Lambda вместе с необходимыми им инфраструктурными ресурсами AWS. Фактически это интерфейс командной строки, предоставляющий структуру, автоматизацию и лучшие практики «из коробки». Он позволяет сосредоточиться на создании сложных, событийно-ориентированных бессерверных архитектур, состоящих из функций и событий.


Бессерверная платформа отличается от других фреймворков для создания приложений тем, что она:


  • управляет кодом, а также инфраструктурой;
  • поддерживает несколько языков (в том числе Node.js, Python, Java и другие).

Приступаем к работе с бессерверной платформой


Первым делом установим на компьютере Node.js и подготовим учётные данные в AWS. Бессерверной платформе нужен доступ к учётной записи пользователя у поставщика услуг облачных вычислений, чтобы создавать ресурсы и управлять ими от имени пользователя. Поэтому необходимо настроить права пользователя в AWS IAM и сгенерировать ключ доступа и секретный ключ AWS. Ещё больше о настройке учётных данных можно узнать по этой ссылке.


Установка


Сначала создадим папку и установим бессерверную платформу с помощью следующей команды:


npm install -g serverless

Настройка пользовательского профиля


После установки бессерверной платформы используем ключ доступа и секретный ключ AWS, сгенерированные при настройке прав пользователя в AWS IAM в командной строке. Затем указываем имя создаваемого профиля:


serverless config credentials --provider aws --key <AWS key> --
secret <AWS secret key> --profile <profile name>

Создание сервиса


Далее создаём новый сервис или проект в текущем рабочем каталоге. Делаем это с помощью следующей команды (здесь использовался Node.js):


serverless create --template aws-nodejs

Если хотите создать путь в новом каталоге, можете ввести такую команду:


--path<directory name>


После её выполнения вы должны увидеть три сгенерированных файла: .gitignore, handler.js для управления функциями и serverless.yml.


Управление конфигурацией каждого сервиса осуществляется в файле serverless.yml. В основные обязанности этого файла входит:


  • Объявление бессерверного сервиса.
  • Определение в сервисе одной или нескольких функций.
  • Определение поставщика, где будет развёрнут сервис (и среды выполнения, если таковая имеется).
  • Определение любых пользовательских плагинов, которые будут задействованы.
  • Определение событий, которые вызывают выполнение каждой функции (например, HTTP-запросы).
  • Определение набора ресурсов (например, 1 таблица DynamoDB), необходимых функциям в этом сервисе.
  • Разрешение событий, перечисленных в разделе events («События») для автоматического создания ресурсов, необходимых событию при развёртывании.

В файле serverless.yml можно увидеть имя сервиса, конфигурацию поставщика и первую функцию внутри определения functions. Она указывает на файл handler.js (это функция, которая генерируется по умолчанию). Любое дальнейшее конфигурирование сервиса будет осуществляться в этом файле.


Обратите внимание: добавлять надо имя профиля, использованное при настройке проекта во вкладке «provider» файла serverless.yml.


Рис. 1: файл serverless.yml

Теперь можно развернуть проект в AWS с помощью следующей команды:


serverless deploy


Её нужно запускать и после внесения изменений в инфраструктуру (например, после редактирования serverless.yml). Эту команду можно снабдить параметрами, такими как --region (для указания области в этом этапе, в которой вы хотите развернуть сервис), --stage (для указания этапа в сервисе, который вы хотите развернуть). После успешного развёртывания проекта командная строка будет выглядеть следующим образом:


Рис. 2: после развёртывания проекта

Наконец, можно перейти к лямбда-функциям в учётной записи AWS и увидеть, что функция по умолчанию успешно создана.


Заключение


Эта статья была написана в помощь всем тем, кто ещё только знакомится с бессерверной платформой и хочет научиться настраивать бессерверный проект и разворачивать простую лямбда-функцию. Надеюсь, статья была полезной и спасибо за внимание!


471   0  

Comments

    Ничего не найдено.