Начать разработку лямбда-сервисов довольно просто. На официальном сайте есть хорошее введение 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 :)