Новейшие функции AWS Lambda для бессерверных вычислений
AWS Lambda — лидер в сфере бессерверных вычислительных услуг, который позволяет вам с удобством запускать свой код без необходимости выделять серверы или управлять ими.
Если вам нужно регулярно масштабировать свой продукт, не сосредотачиваясь на серверной части, AWS Lambda, вероятно, является одним из ваших продуктов. Он взимает плату только за фактически используемое вычислительное время и может обрабатывать от нескольких запросов в день до тысяч запросов в секунду.
По сути, он берет на себя вопросы администрирования, может запускаться практически из любого типа приложения или серверной службы и взимает плату только тогда, когда ваш код запущен. Ознакомьтесь с этим кратким руководством, если хотите узнать больше об AWS Lambda. Вы также можете посмотреть это официальное техническое введение в AWS на YouTube.
https://www.youtube.com/watch?v=QzipnZzAQEk
Lambda существует уже некоторое время и набирает популярность. Однако совсем недавно AWS объявила о нескольких новых функциях AWS Lambda, которые помогут расширить число пользователей, выбравших ее в качестве платформы для разработки.
Этими двумя функциями являются переменные среды и обновленная модель бессерверных приложений. Недавно они также улучшили возможность создания бессерверных приложений в AWS Mobile Hub и добавили функцию X-Ray для облегчения отладки.
Переменные среды
Перво-наперво: приятно отметить, что эта добавленная функция включена бесплатно, если вы используете служебный ключ по умолчанию, предоставленный Lambda. AWS поясняет в своем блоге, что при использовании собственного ключа применяется типичная плата за KMS за запрос.
Недавно добавленная возможность задавать переменные среды для определенных функций в Lambda является важной. Конечно, когда разработчики создают код, они пытаются дать коду возможность использовать более чем в одной среде.
Чтобы сделать это хорошо, он должен иметь возможность принимать значения конфигурации во время выполнения. В противном случае его невозможно легко адаптировать. Это связано с тем, что эти значения конфигурации обычно зависят от среды, в которой размещен код. «Например, — объясняет Джефф Барр в блоге AWS, — многие проекты имеют разные конфигурации для среды разработки, тестирования и производства».
Наконец, теперь можно связать переменные среды с функциями Lambda, предоставляя пользователям возможность обновлять и пересматривать изменения конфигурации или применять ключи API без необходимости каждый раз жестко кодировать их.
Благодаря этому вы также можете более эффективно работать со своим бессерверным приложением, чем раньше, поскольку нет необходимости повторно развертывать код для внесения изменений в конфигурацию. Зашифровав ключ/значение в паре с их сервисом управления ключами AWS (KMS), вы можете расшифровать каждый из них по мере необходимости.
KMS — это функция AWS, которая упрощает создание ключей шифрования и управление ими для защиты ваших данных. Он также использует аппаратные модули безопасности (HSM) для защиты ключей. Эта функция интегрирована во многие сервисы AWS, а также в AWS CloudTrail, чтобы защитить ваши данные.
В AWS Lambda вы можете создавать новые версии функции Lambda, устанавливая для них переменные среды. Значения могут быть изменены только в последней версии функции. Кроме того, существует строгое ограничение размера в 4 КБ, но нет ограничения на количество возможных переменных среды для каждой функции.
Модель бессерверного приложения
Эта функция была создана, чтобы упростить создание, управление и интеграцию приложений AWS Lambda. Новая модель AWS SAM предоставляет пользователям возможность описания компонентов функций Lambda, ресурсов Amazon API Gateway и таблиц Amazon DynamoDB гораздо более простым способом.
Amazon API Gateway — это сервис, который помогает разработчикам создавать, публиковать, поддерживать, отслеживать и защищать API без минимальных сборов и начальных затрат. Amazon DynamoDB, с другой стороны, является службой базы данных NoSQL. Обе эти услуги можно использовать в любом масштабе.
Теперь в AWS Lambda можно использовать упрощенный синтаксис, изначально поддерживаемый AWS CloudFormation, для создания бессерверных приложений с этими различными ресурсами, которые обычно используются вместе.
Барр пишет, что «Каждое объявление функции указывает обработчик, среду выполнения и URI для ZIP-файла, содержащего код функции». API-интерфейсы могут быть объявлены неявно через определение событий, хотя вы также можете объявить их явно с помощью файла Swagger.
Хотя у вас есть полный набор возможностей для объявления таблиц DynamoDB, теперь также можно объявлять их с помощью упрощенного синтаксиса. Для этого вам нужно будет только указать «имя таблицы, первичный ключ (имя и тип) и предоставленную пропускную способность».
По сути, AWS SAM — это файл манифеста для приложения, созданного на AWS Lambda, который дает описание того, как каждый раздел соответствует архитектуре AWS.
Бессерверное приложение в AWS Mobile Hub
AWS Mobile Hub недавно выпустил новую функцию Cloud Logic, которая помогает разработчикам мобильных приложений реализовать шаблон «создавать и тестировать мобильные облачные API, поддерживаемые разрабатываемыми вами функциями бизнес-логики», и «распространять вашу бизнес-логику в ваших приложениях для iOS и Android».
Благодаря этой новой функции пользователи могут иметь больший контроль и доступ к облачным API-интерфейсам в API Gateway, чтобы упростить «ограничение доступа для пользователей приложений, которые прошли аутентификацию с помощью любого из параметров входа пользователя в Mobile Hub». Новые варианты входа теперь также включают вход в приложение на основе SAML и полностью управляемый вход в приложение на основе электронной почты и пароля.
Таким образом, Mobile Hub теперь можно использовать для помощи в создании функций с конечными точками API Gateway, используемыми в мобильных приложениях. Таким образом, разработчики могут начать со стороны приложения, а не со стороны сервера, улучшая рабочий процесс и инфраструктуру.
AWS также предоставляет информацию о том, как создать «безопасную мобильную серверную часть всего за несколько минут с использованием бессерверного стека».
Рентген AWS
Еще одна недавно анонсированная функция — AWS X-Ray, хотя сейчас она находится в предварительной версии. Эта функция помогает разработчикам анализировать и отлаживать свой код в распределенных приложениях.
С помощью X-Ray вы получаете «сквозное представление запросов по мере их прохождения через ваше приложение» и возможность отслеживать вызовы и время от функций AWS Lambda к другим сервисам.
Когда он будет выпущен для AWS Lambda, он сможет анализировать как рабочие, так и разрабатываемые приложения. Эта полезная функция помогает пользователям «выявлять и устранять основные причины проблем с производительностью и ошибок».