Давайте разом розглянемо ключові аспекти AWS Lambda і розберемося, як запустити власну функцію.
Вступ
Розробляючи додатки, ми прагнемо забезпечити найкращий досвід користувача. Для реалізації всіх можливостей, вашому додатку потрібен серверний код, який реагує на різні події.
Проте, управління інфраструктурою для розміщення та виконання цього серверного коду передбачає налаштування, обслуговування та масштабування серверів, оновлення операційних систем, встановлення патчів безпеки та моніторинг працездатності всієї інфраструктури.
Чи не було б чудово, якби можна було сконцентруватися на створенні чудових додатків, не хвилюючись про їх інфраструктуру? Саме тут на допомогу приходить AWS Lambda.
Що таке AWS Lambda?
AWS Lambda – це безсерверний обчислювальний сервіс, який дає змогу запускати код, не турбуючись про сервери. Ви можете розміщувати свій додаток або серверні служби за допомогою AWS Lambda без необхідності їх адмініструвати. Просто завантажте свій код в Lambda, і він буде виконуватись, навіть масштабуючи інфраструктуру для забезпечення високої доступності.
Код, який ви запускаєте в AWS Lambda, називається лямбда-функцією. Наразі він підтримує наступні мови програмування:
- Java
- Python
- C#
- Node.js
- Go
- PowerShell
- Ruby
Також є API середовища виконання, за допомогою якого можна запускати функції, написані іншими мовами програмування.
Для роботи з AWS Lambda потрібна лише одна умова: мати обліковий запис AWS, за допомогою якого можна отримати доступ до консолі управління AWS.
AWS Lambda часто називають FaaS (Function-as-a-Service) від AWS.
Функціональні можливості AWS Lambda
Нижче наведено деякі з важливих функцій, які пропонує AWS Lambda:
- AWS Lambda легко масштабує інфраструктуру без додаткового налаштування, що зменшує обсяг операційної роботи.
- Він пропонує інтеграцію з різними сервісами, такими як AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit та іншими, для запуску подій.
- Не потрібно робити капіталовкладень наперед. Ви платите лише за пам’ять, яку використовує лямбда-функція, та за мінімальну кількість запитів, що робить його економічно вигідним.
- AWS Lambda є безпечним. Він використовує AWS IAM для управління ролями та політиками безпеки.
- Він забезпечує відмовостійкість як для служб, що виконують код, так і для самої функції. Вам не потрібно хвилюватися про те, що ваш додаток перестане працювати.
Ціноутворення AWS Lambda
Вартість використання AWS Lambda залежить від часу виконання та обсягу пам’яті, який використовує ваша лямбда-функція. Максимальний обсяг пам’яті, який можна виділити, становить 3008 МБ з кроком 64 МБ. Нижче наведено таблицю цін з вартістю використання пам’яті за кожні 100 мілісекунд.
Як працює AWS Lambda?
- Спочатку ви створюєте функцію та вказуєте основні параметри, як-от мову програмування, яку буде використано.
- Потім ви пишете свій код в лямбда-редакторі або завантажуєте його у вигляді zip-файлу, якщо використовуєте підтримувану мову програмування.
- Після завантаження коду, сервіс бере на себе масштабування, виправлення помилок та управління інфраструктурою.
- Щоб запустити код, потрібно викликати лямбда-функцію за допомогою зовнішньої служби AWS, наприклад, S3.
- Протягом кількох секунд лямбда буде готова до автоматичного запуску вашої функції у відповідь на подію. AWS Lambda запускає ваш код, коли відбувається тригерна подія, і бере на себе управління та моніторинг серверів.
- Якщо вашій функції потрібні значні обчислювальні ресурси, вона обере екземпляр з більшою потужністю та пам’яттю. А якщо ваш код виконується лише кілька секунд, він вибере найменший можливий екземпляр, заощаджуючи ваші кошти та час.
Ось як працює AWS Lambda. Далі розглянемо практичний приклад.
Створення функції AWS Lambda
Для цієї демонстрації ми створимо просту гру з використанням лямбда-функції на Node.js. Лямбда-функція імітуватиме кидок грального кубика, генеруючи випадкове число від 1 до 6 і виводячи його на екран.
- Перейдіть до консолі управління AWS та в рядку пошуку введіть Lambda, а потім виберіть Lambda.
- Відкриється вікно функцій, натисніть “Створити функцію”.
- З’являться різні варіанти створення функції з їх описом. Оскільки ми створюємо її з нуля, виберемо “Автор з нуля”.
- Далі потрібно заповнити основну інформацію для лямбда-функції. Введіть її назву та виберіть версію Node.js.
- Також потрібно вибрати роль виконавця. Якщо у вашому обліковому записі немає визначеної ролі, виберіть “Створити нову роль”. Натисніть “Створити функцію”.
- З’явиться повідомлення про успішне створення. Натисніть на вікно конструктора, щоб згорнути його.
- Далі з’явиться вікно коду функції.
- Вставте наступний код в редактор. Ви також можете завантажити код через zip-файл, але ми скористаємося вбудованим редактором коду.
- Це простий код, який генерує випадкове число від 1 до 6 за допомогою математичної функції та виводить його при виклику функції.
exports.handler = async (event) => { const min = 1; const max = 6; const randomNum = Math.floor(Math.random() * (max - min + 1)) + min; const out="Результат кидка кубика: " + randomNum; return out; };
- Натисніть кнопку “Тестувати” у верхньому правому куті. З’явиться вікно для налаштування тестової події, введіть її назву та натисніть “Налаштувати”.
- Натисніть “Зберегти”, а потім “Тестувати”.
У результатах ви побачите вивід логіки, яку ми щойно написали. Наприклад, “Результат кидка кубика: 2”.
- Прокрутіть догори та натисніть “Детальні результати виконання” для перегляду повного звіту лямбда-функції. Тут буде така інформація, як ідентифікатор запиту, тривалість, виділені ресурси, а також вивід журналу.
- Перейдіть на вкладку “Моніторинг” для візуалізації журналів CloudWatch та аналізу продуктивності функції за певний період.
- У журналах CloudWatch ви можете подивитися деталі того, що відбувалося під час виконання лямбда-функції, що відстежувалось CloudWatch.
Висновок
Початок роботи з Lambda досить простий. Якщо ваш бізнес-додаток потребує запуску серверного коду, ви можете скористатися безсерверною платформою, такою як AWS Lambda.
Чи була стаття для вас корисною? Поділіться нею зі світом!