Що таке AWS Lambda? Лямбда-функція з прикладами

Перед функцією AWS Lambda давайте розберемося:

Що таке Безсерверне?

Безсерверний термін, який зазвичай стосується безсерверних програм. Безсерверні програми – це ті, які не потребують серверної підтримки та не потребують керування серверами.

Що таке AWS Lambda?

AWS Lambda це керована подіями безсерверна обчислювальна платформа, яку надає Amazon як частина Amazon Веб-сервіси. Тому вам не потрібно турбуватися про те, які ресурси AWS запускати або як ви ними керуватимете. Натомість вам потрібно розмістити код на Lambda, і він запуститься.

В AWS Lambda код виконується на основі відповіді на події в службах AWS, наприклад додавання/видалення файлів у сегменті S3, HTTP-запит від Amazon API-шлюз тощо. Amazon Lambda можна використовувати лише для виконання фонових завдань.

Функція AWS Lambda допомагає вам зосередитися на вашому основному продукті та бізнес-логіці замість того, щоб керувати контролем доступу до операційної системи (ОС), виправленням ОС, правильним розміром, підготовкою, масштабуванням тощо.

Як працює AWS 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, коли його запускають служби AWS:

Крок 5: AWS стягує плату лише тоді, коли виконується лямбда-код AWS, а не інакше.

Це станеться в таких сценаріях:

  • Завантажте файли у відро S3
  • Коли URL-адреса кінцевої точки HTTP get/post потрапляє
  • Для додавання/зміни та видалення таблиць Dynamo DB
  • У процесі збору потоків даних
  • Натискання сповіщення
  • Хостинг сайту
  • Надсилання електронної пошти

Примітка: Слід пам’ятати, що ви стягуватимете плату за послуги AWS лише тоді, коли виконується код AWS Lambda, інакше вам не потрібно нічого платити.

Події, які запускають AWS Lambda

Ось події, які будуть ініційовані, коли ви використовуєте AWS Lambda.

  • Вставлення, оновлення та видалення даних таблиці Dynamo DB
  • Щоб включити 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 SNS або спеціальний сервіс. Ця функція тригерів допомагає вам виконувати свою логіку.

Лямбда-шари:

Лямбда-рівні є важливим механізмом розподілу для бібліотек, настроюваних середовищ виконання та інших важливих функціональних залежностей. Цей компонент AWS також допомагає вам керувати кодом функції розробки окремо від незмінного коду та ресурсів, які він використовує.

Потоки журналу:

Потік журналу дозволяє вам коментувати свій код функції спеціальними операторами журналювання, що допомагає аналізувати потік виконання та продуктивність ваших функцій AWS Lambda.

Як користуватися AWS Lambda

Тепер ми дізнаємося, як використовувати AWS Lambda на прикладі AWS Lambda:

крок 1) Крок 1) Відкрийте AWS Lambda URL
Гото https://aws.amazon.com/lambda/ і Початок роботи

Як користуватися AWS Lambda

крок 2) Створити аккаунт
Далі створіть обліковий запис або увійдіть за допомогою наявного облікового запису

крок 3) Відредагуйте код і натисніть Виконати,
На наступній сторінці Lambda

  1. Відредагуйте код
  2. Натисніть Виконати

Як користуватися AWS Lambda

крок 4) Перевірити вихід
Ви побачите вихід

Як користуватися AWS Lambda

AWS Lambda VS AWS EC2

Ось кілька основних відмінностей між AWS Lambda та EC2.

Параметри AWS Lambda AWS EC2
Визначення AWS Lambda — це платформа як послуга (PaaS). Це допомагає вам запускати та виконувати ваш серверний код. AWS EC2 — це інфраструктура як послуга (laaS). Він забезпечує віртуальні обчислювальні ресурси.
Гнучкість Не забезпечує жодної гнучкості для входу в екземпляри обчислень. Це дозволяє вибрати налаштовану операційну систему або мову виконання. Пропонує гнучкість вибору різноманітних екземплярів, налаштованих операційних систем, патчів безпеки та мережі тощо.
Процес встановлення Вам потрібно вибрати середовище, у якому ви хочете запустити код, і передати код в AWS Lambda. Уперше в EC2 вам потрібно вибрати ОС і встановити все необхідне програмне забезпечення, а потім надіслати свій код у EC2.
Обмеження довкілля Він обмежений кількома мовами. Жодних обмежень щодо навколишнього середовища.

AWS Lambda VS 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 Лямбда-функції:

  • Використовуйте правильний «тайм-аут».
  • Використовуйте функції локального сховища розміром 500 МБ у папці /temp
  • Зведення до мінімуму використання коду запуску, який безпосередньо не пов’язаний з обробкою поточної події.
  • Щоб переглядати та оптимізувати затримки запитів, слід використовувати вбудований моніторинг CloudWatch для своїх функцій Lambda.

Коли не варто використовувати AWS Lambda

Нижче наведено ситуації, коли Lambda, безумовно, не є ідеальним варіантом:

  • Недоцільно використовувати програмні пакети або програми AWS Lambda, які покладаються на базовий виклик Windows RPC
  • Якщо використовується для спеціальних програм із ліцензійними угодами, як-от обробка документів MS-Office, Oracle бази даних тощо.
  • AWS Lambda не слід використовувати для користувацьких апаратних процесів, таких як прискорення GPU, апаратне забезпечення.

Переваги використання 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, тому ви не можете встановити додаткове програмне забезпечення, якщо цього вимагає ваш код.
  • Одночасне виконання обмежено 100
  • Інфраструктура AWS Lambda повністю залежить від AWS; ви не можете встановити додаткове програмне забезпечення, якщо цього вимагає ваш код.
  • Його обсяг пам'яті може варіюватися від 128 до 1536 Мб.
  • Запит на подію не повинен перевищувати 128 КБ.
  • Лямбда-функції допомагають писати свої журнали лише в CloudWatch. Це єдиний інструмент, який дозволяє контролювати або усувати несправності ваших функцій.
  • Час очікування виконання коду становить лише 5 хвилин.

Підсумки

  • Безсерверний термін, який зазвичай стосується безсерверних програм.
  • AWS Lambda є одним із таких безсерверних обчислювальних сервісів. Тому вам не потрібно турбуватися про те, які ресурси AWS запускати або як вони ними керуватимуть.
  • Функція — це програма або сценарій, який виконується в безсерверній Lambda AWS.
  • Середа виконання дозволяє виконувати функції на різних мовах, які працюють в одному базовому середовищі виконання.
  • Джерелом події є служба AWS, наприклад Amazon SNS або спеціальний сервіс.
  • Лямбда-рівні є важливим механізмом розподілу для бібліотек, настроюваних середовищ виконання та інших важливих функціональних залежностей.
  • Потік журналу дає змогу коментувати ваш код функції спеціальними операторами журналювання, що допомагає аналізувати потік виконання та продуктивність ваших функцій Lambda.
  • AWS Lambda — це платформа як послуга (PaaS). Це допомагає вам запускати та виконувати ваш серверний код.
  • AWS EC2 — це інфраструктура як послуга (laaS). Він забезпечує віртуальні обчислювальні ресурси.
  • Розгортайте та керуйте програмами в AWS Cloud, не турбуючись про інфраструктуру, яка запускає ці програми.
  • AWS Lambda використовується для запуску та виконання вашого серверного коду. Ви не можете використовувати його для розгортання програми.
  • AWS Lambda допоможе вам у Процес ETL.
  • Найкраща практика використання функції Lambda в AWS — це використовувати правильний «тайм-аут».
  • Недоцільно використовувати програмні пакети або програми AWS Lambda, які покладаються на базовий виклик Windows RPC
  • AWS Lambda — це дуже гнучкий інструмент.
  • Інструмент AWS Lambda не підходить для невеликих проектів.
  • Загальною подією, яка запускається під час використання AWS Lambda, є вставлення, оновлення та видалення даних таблиці Dynamo DB.