Используя командную строку

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

Однако этот метод медленный и дорогостоящий.

Таким образом, концепция бессерверных вычислений приобрела популярность в последние несколько лет.

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

Эта служба выполняет код только тогда, когда это необходимо, и автоматически масштабирует запросы в день в соответствии с требованиями. Это удобно в сочетании со шлюзами API для разработки одного оптимального решения.

AWS API Gateway - это полностью управляемый сервис, который позволяет разработчикам создавать, публиковать, отслеживать и поддерживать свои API в любом масштабе.

Когда вы объединили его с функцией Lambda, теперь у вас есть то, что известно как FaaS (функция как услуга). Это позволяет разработчикам заменить медленный традиционный процесс внутренней разработки экономичным бессерверным решением.

Преимущества использования лямбда

Есть несколько преимуществ работы с бессерверными технологиями.

На уровне разработки Lambda упрощает управление систематической сложностью и выполнение интеграционного тестирования. Проще говоря, Lambda позволяет инженерам полностью сосредоточиться на бизнес-логике, поскольку она обрабатывает масштабирование, ведение журнала, отслеживание ошибок и авторизацию.

Вот некоторые из наиболее важных преимуществ Lambda:

Встроенное ведение журнала

Вы когда-нибудь разрабатывали инфраструктуру и понимали, что вам нужно уделять приличное количество времени, чтобы включить ведение журнала и отслеживание ошибок?

Что ж, Lambda делает все это за вас. Вы можете увидеть все свои журналы в консоли управления AWS.

Масштабируемость

Еще одна интересная особенность - AWS Lambda автоматически масштабирует ваше приложение.

Он запускает ваш код в ответ на каждый запрос, а затем обрабатывает каждый запрос отдельно, параллельно с запущенным кодом. Таким образом, триггеры точно масштабируются в соответствии с размером всей рабочей нагрузки.

Разработка вашей первой лямбда-функции с помощью API-шлюза

Рассказав обо всех преимуществах, давайте обсудим, как настроить функцию AWS Lambda.

Давайте начнем с рассмотрения функции ниже. Это стандартная функция стиля «Hello World». Вы также заметите, что мы используем Python, что важно, когда дело доходит до настройки вашей установки позже.

Мы хотели бы внедрить эту базовую функцию в AWS Lambda. В отличие от вашей стандартной функции «Hello World», в которой вы можете передать только одну переменную, эта функция будет принимать параметр, который ссылается на «событие». Он будет содержать данные, которые мы будем передавать в нашем HTTP-запросе.

Затем эти данные будут проанализированы и извлекут все параметры из этого тела запроса и установят для них все, что нам нужно. В этом случае есть только переменная «имя».

Который мы будем использовать, чтобы отправить обратно «Hello» + имя и код состояния 200. Это будет представлять функцию, возвращающуюся успешно.

Шаг 1. Код Python

Шаг 2: файл Serverless.yml

Чтобы легко передать эту функцию в Lambda с помощью командной строки, мы также создадим файл serverless.yml.

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

Это помогает настроить функцию Lambda, чтобы ее можно было легко отправить в облако с помощью командной строки.

Нижеприведенный файл - это то, что мы будем использовать.

Шаг 3. Установите бессерверную версию

Теперь, когда у нас есть основная функция и файл serverless.yml, следующим шагом в развертывании этой функции в Lambda будет npm install serverless, что позволит вам получить доступ к команде sls.

Приведенные ниже команды помогут вам установить эту службу.

npm install -g serverless
npm i -D serverless-dotenv-plugin
sls plugin install -n serverless-python-requirements

Шаг 4. Разверните функцию

После установки без сервера у вас теперь есть доступ к команде sls. Это позволит вам развернуть бессерверную функцию с помощью одной команды.

Во-первых, вам нужно убедиться, что вы находитесь в папке, в которой находятся ваши serverless.yml и test_function.py. Убедитесь, что это единственное, что находится в папке.

Это важно, потому что, когда вы запускаете команду развертывания, весь ваш файл будет развернут. Вы же не хотите случайно развернуть 500 ГБ какого-то случайного файла.

Убедившись, что в вашей папке находятся только те файлы, которые вы хотите развернуть, вы можете запустить следующую команду в своем терминале.

sudo sls deploy

После этого sls развернет ваш код в AWS. В конце концов, вы сможете найти его автоматически в консоли управления AWS.

Поздравляю! Вы запустили свою первую бессерверную функцию.

Шаг 5. Проверка вашей функции

Чтобы проверить эту функцию, мы собираемся использовать файл JSON для передачи параметров. Это будет представлять собой базовый HTTP-запрос.

Ниже приведен файл, который мы называем event.json, который вам понадобится. Обратите внимание, что у него есть только параметр «name», но в будущем вы можете сделать свои бессерверные функции намного более сложными и, в свою очередь, иметь больше параметров.

После настройки этого файла JSON вы можете использовать приведенную ниже команду, чтобы проверить функцию в командной строке.

sudo sls invoke — function get-hello — path event.json

После запуска этой функции вы получите результат, подобный приведенному ниже.

Это ответ, который вы бы получили, если бы реализовали эту бессерверную функцию в своей инфраструктуре.

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

Заключительные слова

AWS Lambda - это высокомасштабируемый бессерверный сервис, управляемый событиями, который позволяет разработчикам быстро разрабатывать функции. Разработчики программного обеспечения могут использовать его для создания конечных точек, а также активно используются инженерами по обработке данных для разработки конвейеров данных между такими компонентами AWS, как S3, Kinesis и Redshift.

Способность Lambda сокращать время, необходимое для разработки инфраструктуры, делает использование Lambda более популярным с каждым днем. Не говоря уже о том, что со всеми этими дорогостоящими затратами на EC2 возможность платить только за вызов функции делает Lambda очень заманчивым решением.

В общем, этот FaaS (функция как услуга) отлично подходит для разработчиков и может помочь оптимизировать процесс разработки.