Що таке AWS Lambda? Лямбда-функція з прикладами
⚡ Розумний підсумок
AWS Lambda — це платформа для безсерверних обчислень, керована подіями, від... Amazon Веб-сервіси, які запускають ваш код у відповідь на тригери, автоматично обробляючи виділення ресурсів, масштабування та керування сервером, щоб ви могли зосередитися лише на бізнес-логіці.

Перш ніж досліджувати AWS Lambda, варто зрозуміти, що означає безсерверний підхід.
Що таке Безсерверне?
Безсерверні – це термін, який зазвичай стосується безсерверних додатків. Безсерверні додатки – це ті, які не потребують жодного надання сервера та не вимагають від вас керування серверами.
Що таке AWS Lambda?
AWS Lambda — це керована подіями безсерверна обчислювальна платформа, надана компанією Amazon як частина Amazon Веб-сервіси. Тому вам не потрібно турбуватися про те, які ресурси AWS запускати або як ви будете ними керувати. Натомість вам потрібно розмістити код на Lambda, і він запуститься.
В AWS Lambda код виконується на основі реакції на події в сервісах AWS, таких як додавання або видалення файлів у корзині S3, HTTP-запит від Amazon API Gateway та подібні події. Однак Amazon Lambda можна використовувати лише для виконання фонових завдань.
Функція AWS Lambda допомагає вам зосередитися на основному продукті та бізнес-логіці, замість того, щоб керувати контролем доступу до операційної системи (ОС), встановленням патчів для ОС, оптимізацією розміру, виділенням ресурсів, масштабуванням тощо.
Як працює AWS Lambda?
Наведений нижче приклад AWS Lambda з блок-схемою пояснює роботу AWS Lambda за кілька простих кроків:
Крок 1: Спочатку завантажте свій код AWS Lambda будь-якою мовою, яка підтримується AWS Lambda. Java, Python, Go та C# – це деякі з мов, які підтримуються функцією AWS Lambda.
Крок 2: Це деякі служби AWS, які дозволяють запускати AWS Lambda.
Крок 3: AWS Lambda допоможе вам завантажити код і деталі події, за якої він має бути запущений.
Крок 4: Виконує код AWS Lambda, коли він запускається сервісами AWS.
Крок 5: AWS стягує плату лише тоді, коли виконується код AWS Lambda, а не в іншому випадку.
Це станеться в таких сценаріях:
- Завантажте файли у відро S3
- Коли кінцева точка HTTP get/post URL вдарений
- Для додавання, зміни та видалення таблиць бази даних Dynamo
- У процесі збору потоків даних
- Натискання сповіщення
- Хостинг сайту
- Надсилання електронної пошти
Примітка: Вам слід пам’ятати, що плата за послуги AWS стягуватиметься лише тоді, коли виконується код AWS Lambda, інакше вам не потрібно нічого платити.
Події, які запускають AWS Lambda
Ось події, які будуть ініційовані під час використання AWS Lambda.
- Вставка, оновлення та видалення даних у таблиці бази даних Dynamo
- Щоб включити push-сповіщення в SNS
- Для пошуку історії журналів у CloudTrail
- Вхід в об'єкт S3
- DynamoDB може запускати AWS Lambda щоразу, коли в таблиці додаються, змінюються чи видаляються дані.
- Допомагає вам запланувати подію для виконання завдання у звичайний часовий графік.
- Зміни об’єктів у відрах S3
- Сповіщення надіслано з Amazon SNS.
- AWS Lambda можна використовувати для обробки журналів CloudTrail.
- Шлюз API дозволяє запускати AWS Lambda за методами GET/POST.
AWS Lambda Concepts
Функції: Функція — це програма або сценарій, який виконується в AWS Lambda. Lambda передає події виклику у вашу функцію, яка обробляє подію та повертає відповідь.
Час виконання: Середовище виконання дозволяє виконувати функції різними мовами в одному базовому середовищі виконання. Це допомагає налаштувати функцію в середовищі виконання. Воно також відповідає вибраному вами мова програмування.
Джерело події: Джерелом події є служба AWS, наприклад Amazon Соціальна мережа або користувацький сервіс. Цей тригер допомагає функції виконувати свою логіку.
Лямбда-шари: Лямбда-рівні є важливим механізмом розподілу для бібліотек, настроюваних середовищ виконання та інших важливих функціональних залежностей. Цей компонент AWS також допомагає вам керувати кодом функції розробки окремо від незмінного коду та ресурсів, які він використовує.
Потоки журналу: Потік журналів дозволяє анотувати ваш код функцій за допомогою спеціальних операторів журналювання, які допомагають аналізувати потік виконання та продуктивність ваших функцій AWS Lambda.
Як користуватися AWS Lambda
Тепер ми навчимося використовувати AWS Lambda на прикладі AWS Lambda:
Крок 1) Відкрити AWS Lambda URL
Перейдіть до https://aws.amazon.com/lambda/ і Початок роботи.
Крок 2) Створити аккаунт
Далі створіть обліковий запис або увійдіть, використовуючи дані існуючого облікового запису.
Крок 3) Відредагуйте код і натисніть «Виконати»
На наступній сторінці лямбда відредагуйте код і натисніть «Виконати».
Крок 4) Перевірте вихід
Ви побачите результат.
AWS Lambda VS AWS EC2
Ось деякі основні відмінності між AWS Lambda та EC2.
| Параметри | AWS Lambda | AWS EC2 |
| Визначення | AWS Lambda — це платформа як послуга (PaaS). Це допомагає вам запускати та виконувати ваш серверний код. | AWS EC2 — це інфраструктура як послуга (IaaS). Вона надає віртуалізовані обчислювальні ресурси. |
| Гнучкість | Не пропонує жодної гнучкості для входу в обчислювальні екземпляри. Дозволяє вибрати налаштовану операційну систему або середовище виконання мови. | Пропонує гнучкість вибору різноманітних екземплярів, користувацьких операційних систем, патчів безпеки та мережі тощо. |
| Процес встановлення | Вам потрібно вибрати середовище, де ви хочете запустити код, та внести його в AWS Lambda. | Уперше в EC2 вам потрібно вибрати ОС і встановити все необхідне програмне забезпечення, а потім надіслати свій код у EC2. |
| Обмеження довкілля | Це обмежено кількома мовами. | Жодних обмежень щодо навколишнього середовища. |
AWS Lambda проти AWS Elastic Beanstalk
Ось деякі основні відмінності між AWS Lambda та Elastic Beanstalk.
| Параметри | AWS Elastic Beanstalk | AWS Lambda |
| Головне завдання | Розгортайте та керуйте програмами в AWS Cloud, не турбуючись про інфраструктуру, яка запускає ці програми. | AWS Lambda використовується для запуску та виконання вашого бекенд-коду. Ви не можете використовувати його для розгортання програми. |
| Вибір ресурсів AWS | Це дає вам свободу вибору ресурсів AWS; наприклад, ви можете вибрати екземпляр EC2, який оптимально підходить для вашої програми. | Ви не можете вибрати ресурси AWS, як-от екземпляр EC2; Lambda пропонує ресурси на основі вашого робочого навантаження. |
| Тип системи | Це державна система. | Це бездержавна система. |
Приклади використання AWS Lambda
AWS Lambda використовується для широкого кола застосувань, таких як:
- Допомагає вам з Процес ETL
- Дозволяє виконувати обробку файлів і потоків у реальному часі
- Використовуйте для створення веб-додатків
- Використання в Amazon такі продукти, як Alexa Chatbots і Amazon Ехо/Алекса
- Обробка даних (потокова аналітика в реальному часі)
- Автоматизоване резервне копіювання щоденних завдань
- Масштабовані серверні частини (мобільні додатки, пристрої Інтернету речей)
- Допомагає вам виконувати серверну логіку на стороні сервера
- Дозволяє фільтрувати та трансформувати дані
Найкращі практики використання лямбда-функції
Ось деякі найкращі практики щодо функцій AWS Lambda:
- Використовуйте правильний «тайм-аут».
- Використовуйте функції локального сховища розміром 500 МБ у папці /temp.
- Мінімізуйте використання коду запуску, який не пов'язаний безпосередньо з обробкою поточної події.
- Щоб переглядати та оптимізувати затримки запитів, слід використовувати вбудований моніторинг CloudWatch для своїх функцій Lambda.
Коли не варто використовувати AWS Lambda
Нижче наведено ситуації, коли лямбда точно не є ідеальним варіантом:
- Недоцільно використовувати AWS Lambda для програмних пакетів або додатків, які залежать від виклику базових Windows RPC.
- Якщо його використовують для користувацьких програмних застосунків з ліцензійними угодами, таких як обробка документів MS-Office, Oracle бази даних тощо.
- AWS Lambda не слід використовувати для користувацьких апаратних процесів, таких як прискорення на графічному процесорі та апаратна спорідненість.
Переваги використання AWS Lambda
Ось переваги/плюси використання AWS Lambda:
- AWS Lambda — це дуже гнучкий інструмент у використанні.
- Це допомагає вам надати доступ до ресурсів, включаючи VPC.
- Автор безпосередньо з WYSIWРедактор YG у консолі.
- Ви можете використовувати його як плагін для Eclipse та Visual Studio.
- Оскільки це безсерверна архітектура, вам не потрібно турбуватися про керування або налаштування серверів.
- Вам не потрібно нічого налаштовувати Віртуальна машина.
- Допомагає розробникам запускати та виконувати відповідь коду на події без створення будь-якої інфраструктури.
- Вам потрібно платити лише за витрачений обчислювальний час, лише коли ваш код виконується.
- Ви можете контролювати продуктивність коду в реальному часі за допомогою CloudWatch.
- Це дозволяє запускати ваш код без налаштування або керування будь-яким іншим сервером.
- Допомагає виконувати код лише тоді, коли це необхідно.
- Ви можете масштабувати його автоматично, щоб обробляти кілька запитів на день і навіть підтримувати більше тисячі запитів на секунду.
- AWS Lambda можна налаштувати за допомогою зовнішніх таймерів подій для виконання запланованих завдань.
- Лямбда-функцію в AWS слід налаштувати із зовнішніми подіями та таймерами, щоб її можна було використовувати для планування.
- Лямбда-функції не зберігають стан, тому їх можна швидко масштабувати.
- AWS Lambda працює швидко, тому виконає ваш код за мілісекунди.
Обмеження AWS Lambda
Ось мінуси/недоліки використання AWS Lambda:
- Інструмент AWS Lambda не підходить для невеликих проектів.
- AWS Lambda повністю покладається на AWS для інфраструктури, тому ви не можете встановлювати додаткове програмне забезпечення, якщо цього вимагає ваш код.
- Одночасне виконання має стандартне обмеження 1,000 на регіон, яке можна збільшити за запитом.
- Обсяг його пам'яті може варіюватися від 128 МБ до 10 240 МБ.
- Запит на подію не повинен перевищувати 128 КБ.
- Лямбда-функції допомагають писати свої журнали лише в CloudWatch. Це єдиний інструмент, який дозволяє контролювати або усувати несправності ваших функцій.
- Час очікування виконання його коду обмежений 15 хвилинами.




