AWS Lambda — это событийно-управляемая , бессерверная функция как услуга (FaaS), предоставляемая Amazon как часть Amazon Web Services . Она разработана для того, чтобы позволить разработчикам запускать код без предоставления или управления серверами. Она выполняет код в ответ на события и автоматически управляет вычислительными ресурсами, требуемыми этим кодом. Она была представлена 13 ноября 2014 г. [1]
Каждый экземпляр AWS Lambda представляет собой контейнер, созданный из Amazon Linux AMIs (дистрибутив Linux, связанный с RHEL ) и настраиваемого времени выполнения. Node.js , Python , Java , Go , [2] Ruby , [3] и C# (через .NET ) официально поддерживаются по состоянию на 2018 год [update]. В конце 2018 года в AWS Lambda была добавлена поддержка пользовательской среды выполнения [4] .
В 2019 году на ежегодной конференции по облачным вычислениям AWS (AWS re:Invent) команда AWS Lambda анонсировала «Provisioned Concurrency» — функцию, которая «поддерживает функции инициализированными и гиперготовыми к реагированию за двузначные миллисекунды». [5] Команда Lambda описала Provisioned Concurrency как «идеальный вариант для реализации интерактивных сервисов, таких как веб- и мобильные бэкэнды, чувствительные к задержкам микросервисы или синхронные API». [6]
URL-адрес функции Lambda предоставляет Lambda уникальный и постоянный URL-адрес , к которому могут получить доступ как аутентифицированные , так и неаутентифицированные пользователи. [7]
AWS Lambda Layers позволяет разработчикам легко управлять и совместно использовать общие компоненты в нескольких функциях Lambda. Он разработан для содействия повторному использованию кода и упрощения развертывания библиотек, пользовательских сред выполнения и других зависимостей, которые могут потребоваться функциям Lambda. Lambda Layers могут быть особенно полезны в архитектурах микросервисов, где несколько функций могут совместно использовать одни и те же зависимости. [8] Используя слои, можно гарантировать, что все функции используют одну и ту же версию библиотеки, что делает приложение более согласованным и простым в управлении.
Следование практикам DevSecOps может помочь конечным пользователям использовать и защищать приложения на основе Lambda более эффективно. [9] В приложениях на основе Lambda граница между инфраструктурой и бизнес-логикой размыта, и приложения обычно распределены по различным сервисам. По словам Янь Цуя, чтобы получить максимальную отдачу от усилий по тестированию, приложения на основе Lambda следует тестировать в основном для их интеграции, а модульные тесты следует использовать только в случае наличия сложной бизнес-логики. Кроме того, чтобы упростить отладку и реализацию приложений на основе Lambda, разработчикам следует использовать оркестровку в ограниченном контексте микросервиса и хореографию между ограниченными контекстами . [ 10]
Lambda Live Debugger — это инструмент с открытым исходным кодом , который помогает вам отлаживать функции AWS Lambda с вашего компьютера, пока они развернуты в облаке. Он поддерживает AWS CDK v2, Serverless Framework v3, AWS Serverless Application Model (SAM) и Terraform . [11]
В апреле 2022 года исследователи обнаружили вредоносное ПО для майнинга криптовалют, нацеленное на AWS Lambda, под названием «Denonia». [12] [13] [14]