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

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

Бессерверная платформа помогает разрабатывать и развёртывать функции 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 и увидеть, что функция по умолчанию успешно создана.

Заключение

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

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Aseka Warnakulasooriya: Getting Started with a Serverless Framework