AWS Lambda
AWS Lambda — безсерверна обчислювальна платформа керована подіями. Вона надається Amazon як одна з веб-служб. Це обчислювальна служба, яка запускає код у відповідь на події і автоматично керує обчислювальними ресурсами, необхідними для виконання цього коду. Сервіс був представлений у листопаді 2014 року.[1]
Тип | Безсерверні обчислення і Функція як послугаd |
---|---|
Розробник | Amazon.com |
Перший випуск | листопад 2014 |
Операційна система | Багатоплатформна |
Доступні мови | English |
Вебсайт | aws.amazon.com/lambda |
Порівняно з AWS EC2, призначення Lambda — спростити створення невеликих додатків, які виконуються на вимогу, як реакція на події або надходження нової інформації. AWS виконує запуск екземпляра Lambda протягом мілісекунд після того, як сталася подія. Станом на 2018 рік офіційно підтримуються мови Node.js, Python, Java, Go[2], Ruby[3] та C # (через .NET Core). Наприкінці 2018 року в AWS Lambda була додана спеціальна підтримка виконання коду[4], що дає розробникам можливість запускати Lambda мовою, яку вони обрали.
AWS Lambda підтримує захищений запуск вбудованих виконуваних файлів Linux за допомогою виклику з підтримуваного оточення виконання, наприклад Node.js.[5] Зокрема, код Haskell можна запустити на Lambda.[6]
AWS Lambda був розроблений для таких випадків застосування, як завантаження зображення або об'єкта до Amazon S3, оновлення DynamoDB таблиць, реакція на клік на вебсайті або реагування на дані, що надійшли з датчику пристрою IoT. AWS Lambda також може використовуватися для автоматичного надання резервних послуг, викликаних користувацькими запитами HTTP, та відключення таких служб, коли вони не використовуються, заради економії ресурсів. Ці спеціальні запити HTTP потрібно налаштовувати в службі AWS API Gateway, проте вони також можуть обробляти аутентифікацію та авторизацію спільно з AWS Cognito.
На відміну від Amazon EC2, в якому перша година використання не оплачується, AWS Lambda вимірюється з кроком 100 мілісекунд. Обсяги нетарифікованого використання сервісу AWS Lambda не скасовуються через 12 місяців після реєстрації рахунку, на відміну від деяких служб AWS.[7]
Специфікація
Кожен екземпляр AWS Lambda — це контейнер, створений на AMI Amazon Linux (дистрибутив Linux, пов'язаний з RHEL), який має від 128 до 3008 МБ оперативної пам'яті (з кроком 64 МБ), 512 МБ віртуального сховища (доступного в теці /tmp, це дані, що залишилися після виконання останнього екземпляра, вони видаляються після завершення всіх завдань, що виконуються в екземплярі) та часу виконання, значення якого можна налаштувати в діапазоні від 1 до 900 секунд (15 хвилин). Екземпляри не запускаються і не контролюються безпосередньо. Натомість пакет, що містить необхідні завдання, повинен бути створений та завантажений (як правило) у S3 bucket, і AWS доручається (через Amazon Kinesis, DynamoDB або SQS) запускати його коли відбудеться подія. Кожне таке виконання відбувається в новому середовищі, тому доступ до контексту виконання попередніх та наступних запусків неможливий. Це по суті означає, що екземпляри не мають стану, тому всі вхідні та вихідні дані потрібно зберігати за допомогою зовнішніх засобів (як правило, це S3 або DynamoDB, вхідні з'єднання з екземплярами відключені). Максимальний розмір стисненого пакету Lambda — 50 Мб, максимальний нестиснений розмір — 250 МБ[8].
Див. також
- Керована подіями архітектура
- Безсерверний каркас
- Безсерверні обчислення
- Функція як послуга
- Лямбда функція, яка визначається без вказання пов'язаного з нею ідентифікатора, від якої й походить назва Amazon Lambda
- Oracle Cloud
- Google Cloud Functions
Примітки
- Amazon introduces Lambda, Containers at AWS re:Invent - SD Times. SD Times (амер.). 14 листопада 2014. Процитовано 9 червня 2016.
- Announcing Go Support for AWS Lambda. Amazon Web Services. 15 січня 2018.
- Announcing Ruby Support for AWS Lambda. Amazon Web Services. 29 листопада 2018.
- AWS Lambda Now Supports Custom Runtimes and Enables Sharing Common Code Between Functions. Amazon Web Services. 29 листопада 2018.
- Wagner, Tim (15 квітня 2015). Running Arbitrary Executables in AWS Lambda. AWS Compute Blog. Процитовано 16 липня 2016.
- Bailly, Arnaud (14 червня 2016). abailly/aws-lambda-haskell: Running Haskell code on AWS Lambda. GitHub. Процитовано 16 липня 2016.
- AWS Lambda - Pricing. Amazon Web Services. Процитовано 16 липня 2016.
- AWS Lambda Limits - AWS Lambda. docs.aws.amazon.com. Процитовано 15 жовтня 2019.