Понятие о бессерверной платформе
Бессерверная платформа помогает разрабатывать и развёртывать функции 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
.
Теперь можно развернуть проект в AWS с помощью следующей команды:
serverless deploy
Её нужно запускать и после внесения изменений в инфраструктуру (например, после редактирования serverless.yml
). Эту команду можно снабдить параметрами, такими как --region
(для указания области в этом этапе, в которой вы хотите развернуть сервис), --stage
(для указания этапа в сервисе, который вы хотите развернуть). После успешного развёртывания проекта командная строка будет выглядеть следующим образом:
Наконец, можно перейти к лямбда-функциям в учётной записи AWS и увидеть, что функция по умолчанию успешно создана.
Заключение
Эта статья была написана в помощь всем тем, кто ещё только знакомится с бессерверной платформой и хочет научиться настраивать бессерверный проект и разворачивать простую лямбда-функцию. Надеюсь, статья была полезной и спасибо за внимание!
Читайте также:
- LocalStack: запуск AWS на локальном компьютере
- Создание бесчисленных областей предпросмотра в AWS с помощью Lambda@Edge
- Архитектура ПО: создайте свое приложение с AWS
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Aseka Warnakulasooriya: Getting Started with a Serverless Framework