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

Зміст:

Anonim

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

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

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

Що таке AWS Lambda?

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

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

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

У цьому посібнику AWS Lambda для початківців ви дізнаєтесь:

  • Як працює AWS Lambda?
  • Події, які викликають AWS Lambda
  • Концепції лямбди AWS
  • AWS Лямбда проти AWS EC2
  • AWS Lambda VS AWS Еластична квасоля
  • Використовуйте футляри AWS 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.

Крок 3: AWS Lambda допомагає завантажувати код та деталі події, щодо яких його слід активувати.

Крок 4: Виконує лямбда-код AWS, коли його запускають служби AWS:

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

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

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

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

Події, які викликають AWS Lambda

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

  • Вставка, оновлення та видалення даних таблиці DB Dynamo
  • Включити push-сповіщення в SNS
  • Для пошуку історії журналів у CloudTrail
  • Вхід в об’єкт S3
  • DynamoDB може запускати AWS Lambda щоразу, коли в таблиці додаються, змінюються та видаляються дані.
  • Допомагає запланувати подію, щоб виконати завдання у встановлений час.
  • Модифікації об’єктів у сегментах S3
  • Сповіщення, надіслані від Amazon SNS.
  • AWS Lambda може використовуватися для обробки журналів CloudTrail
  • Шлюз API дозволяє запускати AWS Lambda за методами GET / POST.

Концепції лямбди AWS

Функція:

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

Час роботи:

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

Джерело події:

Джерелом події є послуга AWS, така як Amazon SNS, або спеціальна служба. Ця функція тригерів допомагає вам виконати її логіку.

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

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

Журнали потоків:

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

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

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

Крок 1 ) Перейдіть на https://aws.amazon.com/lambda/ та розпочніть роботу

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

Крок 3 ) На наступній сторінці Лямбда

  1. Відредагуйте код
  2. Клацніть Виконати

Крок 4 ) Ви побачите результат

AWS Лямбда проти AWS EC2

Ось деякі основні відмінності між AWS Lambda та EC2.

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

AWS Lambda VS AWS Еластична квасоля

Ось деякі основні відмінності між AWS Lambda та Elastic Beanstalk.

Параметри Еластична квасоля AWS AWS Лямбда
Основне завдання Розгортайте та керуйте програмами на AWS Cloud, не турбуючись про інфраструктуру, яка запускає ці програми. AWS Lambda використовується для запуску та виконання вашого внутрішнього коду. Ви не можете використовувати його для розгортання програми.
Вибір ресурсів AWS Це дає вам свободу вибору ресурсів AWS; Наприклад, ви можете вибрати екземпляр EC2, який є оптимальним відповідно до вашої програми. Ви не можете вибрати ресурси AWS, як тип екземпляра EC2, Lambda пропонує ресурси на основі вашого робочого навантаження.
Тип системи Це державна система. Це система без громадянства.

Використовуйте футляри AWS Lambda

AWS Lambda використовується для широкого кола застосувань, таких як:

  • Допомагає вам у процесі ETL
  • Дозволяє виконувати обробку файлів у реальному часі та обробку потоку в режимі реального часу
  • Використовуйте для створення веб-додатків
  • Використовуйте в таких продуктах Amazon, як Alexa Chatbots та Amazon Echo / Alexa
  • Обробка даних (потокова аналітика в режимі реального часу)
  • Автоматизовані резервні копії повсякденних завдань
  • Масштабовані задні кінці (мобільні програми, пристрої loT)
  • Допомагає виконувати серверну логіку сервера
  • Дозволяє фільтрувати та перетворювати дані

Кращі практики роботи лямбда-функції

Ось декілька найкращих практик функцій AWS Lambda:

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

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

Ось ситуація, коли лямбда, безумовно, не є ідеальним варіантом:

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

Переваги використання AWS Lambda

Ось плюси / переваги використання лямбда-сигналу AWS:

  • AWS Lambda - це надзвичайно гнучкий інструмент для використання
  • Це допоможе вам надати доступ до ресурсів, включаючи VPC
  • Автор безпосередньо за допомогою редактора WYSIWYG у консолі.
  • Ви можете використовувати його як плагін для 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 запускати або як вони ними керуватимуть.
  • Функція - це програма або сценарій, що працює у безсерверній лямбді AWS.
  • Час виконання дозволяє функції на різних мовах, які працюють в одному базовому середовищі виконання.
  • Джерелом події є послуга AWS, така як Amazon SNS, або спеціальна служба.
  • Лямбда-шари є важливим механізмом розподілу для бібліотек, користувацьких середовищ виконання та інших важливих функціональних залежностей.
  • Потік журналу дозволяє коментувати код вашої функції спеціальними операторами ведення журналу, що допомагає аналізувати потік виконання та продуктивність ваших функцій Лямбда.
  • AWS Lambda - це платформа як послуга (PaaS). Це допоможе вам запустити та виконати ваш серверний код.
  • AWS EC2 - це інфраструктура як послуга (laaS). Він забезпечує віртуалізовані обчислювальні ресурси.
  • Розгортайте та керуйте програмами на AWS Cloud, не турбуючись про інфраструктуру, яка запускає ці програми.
  • AWS Lambda використовується для запуску та виконання вашого внутрішнього коду. Ви не можете використовувати його для розгортання програми.
  • AWS Lambda допомагає вам у процесі ETL.
  • Найкращою практикою роботи лямбда-функції в AWS є використання правильного "тайм-ауту".
  • Недоречно використовувати програмні пакети або програми AWS Lambda, які покладаються на виклик базових RPC Windows
  • AWS Lambda - це надзвичайно гнучкий інструмент.
  • Інструмент AWS Lambda не підходить для невеликих проектів.
  • Типовою подією, яка буде ініційована під час використання AWS Lambda, є Вставка, оновлення та видалення даних таблиці DB Dynamo.