AWS Lambda – это сервис бессерверных вычислений, который запускает программный код в ответ на определенные события и отвечает за автоматическое выделение необходимых вычислительных ресурсов. AWS Lambda можно использовать для расширения возможностей других сервисов AWS с помощью специальной логики или для создания собственных серверных сервисов с применением возможностей масштабирования, производительности и безопасности AWS. AWS Lambda может автоматически запускать программный код в ответ на различные события, такие как HTTP‑запросы через Amazon API Gateway, изменение объектов в корзине Amazon S3, обновление таблиц в Amazon DynamoDB или смена состояний в AWS Step Functions.

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

Функции AWS Lambda

Знакомство с функциями AWS Lambda

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

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

Основные возможности продукта

Расширьте возможности сервисов AWS с помощью собственного программного кода.

AWS Lambda позволяет добавлять свой код к ресурсам AWS, например к корзинам сервиса Amazon S3 и таблицам Amazon DynamoDB. В результате можно просто выполнять нужные операции с данными на этапе их вхождения или перемещения в рамках облака.

Начать работу с AWS Lambda совсем не сложно. Сначала требуется создать необходимые функции, загрузив свой код (или написав его непосредственно в консоли Lambda), а также задав объем памяти, период ожидания и роль AWS Identity and Access Management (IAM). Затем необходимо указать ресурс AWS, который будет триггером для функции: конкретную корзину сервиса Amazon S3, таблицу Amazon DynamoDB или поток Amazon Kinesis. Зафиксировав изменение ресурса, Lambda выполнит настроенную функцию, а также запустит вычислительные ресурсы, необходимые для обработки поступающих запросов, и будет управлять ими.

Создавайте собственные серверные сервисы

AWS Lambda можно использовать для создания новых сервисов серверной части для приложений, которые будут активироваться по требованию с помощью API Lambda или специальных адресов API, созданных с использованием Amazon API Gateway. Обработка специальных событий с помощью Lambda, а не на устройстве клиента, позволяет не зависеть от пользовательских операционных систем, снижает энергопотребление на стороне клиента и упрощает установку обновлений.

Использование собственного кода

Для работы с AWS Lambda не нужно осваивать новые языки, инструменты или инфраструктуру. Сервис работает с любыми сторонними библиотеками, даже встроенными. Кроме того, можно упаковать любой код (платформу, SDK, библиотеку и т. д.) как уровень Lambda, чтобы использовать его с разными функциями и управлять им. Lambda имеет встроенную поддержку Java, Go, PowerShell, Node.js, C#, Python и Ruby, а также предоставляет API среды выполнения для создания функций с использованием любых других языков программирования.

Полностью автоматизированное администрирование

Благодаря тщательному управлению инфраструктурой AWS Lambda код исполняется в высокопроизводительной, отказоустойчивой среде, что позволяет сосредоточить свои усилия на разработке разнообразных серверных сервисов. Lambda избавляет от забот по обновлению серверной ОС, а также проблем, связанных с расширением существующих или вводом в эксплуатацию новых серверов по мере роста нагрузки. AWS Lambda обеспечивает эффективное развертывание кода, полностью выполняет задачи администрирования, технического обслуживания, исправления уязвимостей системы и обеспечивает возможность мониторинга и ведения журналов средствами Amazon CloudWatch.

Встроенная отказоустойчивость

Lambda обладает встроенной отказоустойчивостью. AWS Lambda поддерживает необходимые объемы вычислительных ресурсов в нескольких зонах доступности в каждом из регионов, защищая код от неисправностей отдельных единиц оборудования или сбоев в работе центров обработки данных (ЦОД). AWS Lambda и функции, работающие в рамках этого сервиса, обеспечивают предсказуемую и надежную операционную производительность. Сервис AWS Lambda разработан для обеспечения высокой доступности как самого сервиса, так и исполняемых им функций. Он работает без плановых простоев и перерывов на обслуживание.

Автоматическое масштабирование

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

Подключение к реляционным базам данных

Используйте Amazon RDS Proxy, чтобы воспользоваться полностью управляемыми пулами подключения для работы с реляционными базами данных. С помощью RDS Proxy можно эффективно управлять тысячами одновременных подключений к реляционным базам данных. Это позволяет легко разрабатывать высокомасштабируемые, безопасные и бессерверные приложения на основе Lambda, которые должны подключаться к реляционным базам данных. На данный момент RDS Proxy поддерживает базы данных MySQL и Aurora. RDS Proxy для бессерверных приложений можно настроить на консоли Amazon RDS или на консоли AWS Lambda.

Эффективный контроль за производительностью

Provisioned Concurrency позволяет лучше контролировать производительность бессерверных приложений. Когда эта возможность включена, функции находятся в инициализированном состоянии и готовы к быстрому реагированию в пределах ста миллисекунд. Provisioned Concurrency идеально подходит для работы с приложениями, разработанными с помощью AWS Lambda, для обеспечения большего контроля за временем запуска функций. Количество параллельных операций легко настраивается в зависимости от требований вашего приложения. Во время повышения активности можно увеличить количество параллельных операций, а во время ее снижения – уменьшить или выключить эту возможность. Для использования Provisioned Concurrency не требуется изменять код. Provisioned Concurrency обеспечивает стабильную производительность приложений, которые должны работать с минимальными задержками, без необходимости управлять вычислительными ресурсами.

Подключение к общим файловым системам

Использование Amazon Elastic File System для AWS Lambda позволяет безопасно считывать, записывать и сохранять большие объемы данных с низкой задержкой при работе в любом масштабе. Писать код для загрузки данных во временное хранилище и их последующей обработки не требуется. Это экономит время и упрощает код приложений, позволяя сосредоточиться на бизнес‑логике. EFS для Lambda идеально подходит для создания приложений машинного обучения, загрузки крупных справочных файлов или моделей, обработки или резервного копирования больших объемов данных, размещения веб‑контента, а также обмена файлами между бессерверными приложениями и приложениями на основе инстансов или контейнеров.

Запуск кода в ответ на запросы Amazon CloudFront

С помощью возможности Lambda@Edge AWS Lambda может запускать соответствующий код в местоположениях AWS по всему миру в ответ на события Amazon CloudFront, например запросы контента от серверов источника или посетителей либо в обратном направлении. Это упрощает предоставление клиентам более качественного, индивидуально настроенного контента с меньшей задержкой. Подробнее »

Оркестрация множества функций

Исполнение множества функций AWS Lambda можно координировать для решения сложных и продолжительных задач, создавая рабочие процессы с помощью сервиса AWS Step Functions. Сервис Step Functions позволяет определять рабочие процессы, которые активируют набор функций Lambda с помощью последовательных, параллельных, разветвленных списков операций, в том числе с возможностями обработки ошибок. С помощью Step Functions и Lambda можно создавать длительные структурированные процессы для приложений и серверов.

Интегрированная модель безопасности

AWS Lambda обеспечивает безопасное взаимодействие кода с другими сервисами AWS посредством встроенного AWS SDK и интеграции с сервисом AWS Identity and Access Management (IAM). По умолчанию AWS Lambda запускает код в облаке VPC. Можно настроить сервис AWS Lambda так, чтобы он имел доступ к ресурсам в пределах другого облака VPC. В этом случае применяются пользовательские группы безопасности и списки контроля доступа к сети, чтобы предоставить функциям Lambda доступ к ресурсам в облаке VPC.

AWS Lambda соответствует требованиям SOC, HIPAA, PCI и ISO. Актуальную информацию о сертификациии Lambda и соответствии требованиям см. на странице Сервисы в программе соответствия требованиям.

Оплата по факту использования

Оплата за использование AWS Lambda начисляется за стабильную пропускную способность или время исполнения, а не за количество используемых серверов. Используя функции Lambda, вы платите только за выполненные запросы и время вычислений, необходимое для запуска кода. Счет за использование AWS Lambda выставляется с точностью до 100 миллисекунд, благодаря чему автоматическое масштабирование от нескольких запросов в день до тысяч запросов в секунду становится простым и экономичным. При использовании Provisioned Concurrency вы оплачиваете указанное вами количество параллельных операций за выбранный период времени. Когда выполняется функция, для которой настроен сервис Provisioned Concurrency, вы также платите за запросы и время выполнения. Подробная информация о расценках доступна на странице цен на AWS Lambda.

Гибкая модель распределения ресурсов

Можно задать для своих функций необходимый объем памяти, и AWS Lambda выделит пропорциональное количество ресурсов ЦПУ, пропускной способности сети и дисковых операций чтения / записи.

Подробнее о ценах на AWS Lambda

Перейти на страницу цен
Готовы начать?
Регистрация
Есть вопросы?
Свяжитесь с нами