Начать разработку лямбда-сервисов довольно просто. На официальном сайте есть хорошее введение https://aws.amazon.com/tw/lambda/, поэтому я не буду вдаваться в подробности. Короче говоря, AWS Lambda позволяет вам создавать свои собственные серверные службы без необходимости самостоятельного администрирования сервера, и вы платите только за время выполнения функций Lambda.

AWS Lambda поддерживает несколько языков при условии, что вы будете разрабатывать с помощью Javascript. Сначала вам нужно настроить среду узла.

Node.js

Сначала нам нужно установить nvm для управления версиями узла. Запустите терминал типа:

$ touch ~/.bash_profile #install.sh will not create this file for you and it will try to modify it
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

Установите узел 8.10 с nvm (последняя версия узла, которую поддерживает лямбда)

$ nvm install 8.10.0
$ nvm use 8.10.0

Бессерверная структура

Вам необходимо установить Serverless framework для создания, тестирования, настройки и развертывания вашего приложения Lambda.

$ npm install serverless -g

Теперь перезапустите терминал и убедитесь, что он установлен правильно:

$ serverless --version

После установки бессерверной среды вы готовы создать свой первый сервис Lambda.

$ serverless create --template aws-nodejs --path hello-serverless
$ cd hello-serverless

Затем вы должны увидеть что-то вроде этого:

Затем откройте папку с Visual Studio Code (или любым редактором кода, который вам нравится)

В папке будут сгенерированы 2 файла: handler.js и serverless.yml.

обработчик.js

этот файл содержит лямбда-функцию, которая будет связана с запросом API.

Параметр события в асинхронной функции содержит информацию о запросе, такую ​​как параметры запроса и тело запроса. Возвращаемый объект — это объект ответа API, который включает в себя такую ​​информацию, как код состояния ответа и тело ответа, заголовки и т. д.

Бессерверный.yml

Этот файл содержит всю конфигурацию службы Lambda. AWS настроит сервис Lambda на основе этого файла при развертывании сервиса. Там вы можете настроить практически все, например, пути к API, ресурсы, разрешения и т. д. Вы можете обратиться к справочнику, чтобы узнать, как писать конфигурации.

Добавление http-события

Чтобы определить событие http, которое может обрабатывать функция, добавьте его в обработчик hello следующим образом:

Тестирование

Существуют разные способы локального тестирования функции Lambda.

Первый способ — напрямую выполнить его с помощью serverless в терминале, запустив его в держателе проекта:

$ serverless invoke local --function hello

Гораздо более удобный подход — использовать бессерверный оффлайн.

Первая установка

$ npm install serverless-offline --save-dev

Затем добавьте его как плагин в serverless.yml, добавив следующее:

plugins:
  - serverless-offline

После этого вы можете запустить свой сервис как локальный сервер, запустив его в корне вашего проекта:

$ serverless offline

или короткая форма бессерверной команды:

$ sls offline

Теперь лямбда-сервис прослушивает http://localhost:3000.

В нем указан маршрут, который вы определили в serverless.yml

Теперь вы можете открыть браузер и вставить «http://localhost:3000/hello» в поле ввода URL. Затем вы должны увидеть это в браузере:

Теперь вы создали свой первый сервис Lambda :)

Но чтобы развернуть его на сервере AWS Lambda Service Server, вам необходимо иметь учетную запись AWS и настроить учетные данные. Вы можете следить за гидом на serverless.com

После всего этого вы можете сделать (что будет развернуто на этапе по умолчанию и в регионе по умолчанию):

$ serverless deploy

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