Вступ до Amazon API Gateway за допомогою AWS Lambda

Вступ до Amazon API Gateway за допомогою AWS Lambda

Вихідний вузол: 1860150

Вступ

Що таке API?

Простіше кажучи, API — це месенджер; давайте зрозуміємо це на деяких прикладах. Припустимо, ви голодні і вам потрібно щось приготувати вдома. Якщо ви хочете приготувати локшину, ви просто дістаєте інгредієнти з шафи, розпалюєте піч і робите її самостійно. Це програма, яка робить щось самостійно за допомогою власних ресурсів. Але скажімо, ви хочете піцу – у вас немає інгредієнтів, а ваша домашня духовка не дуже підходить для приготування приємної хрусткої скоринки. Тому ви замість цього йдете в піцерію. Але на відміну від дома, ви не можете просто піти на кухню та почати використовувати їхні інгредієнти для приготування піци. Вони не хочуть, щоб ваші грязні руки були на їхніх речах! Так що ти будеш робити? Вам потрібно підійти до стійки та зробити замовлення – там буде меню з переліком того, яку піцу ви можете замовити, які начинки чи інші варіанти ви можете вибрати. Це API.

Програмний інтерфейс прикладної програми (API) — це набір правил, які визначають, як мають взаємодіяти дві програми.

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

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

HTTP API

HTTP API — це тип API, який використовує протокол HTTP для надсилання та отримання даних. Це дозволяє програмам надсилати й отримувати дані за допомогою HTTP-запитів і відповідей. Ці запити та відповіді можуть бути в різних форматах, наприклад простий текст, JSON або XML. Вони зазвичай використовуються в широкому діапазоні програм, включаючи веб-програми, мобільні програми та мікросервіси. Ці API відносно дешевші, ніж REST API, і мають менше функцій, ніж останні.

REST API

REST API — це тип API, який відповідає набору архітектурних принципів, які називаються REST (Representational State Transfer). REST — це стиль архітектури програмного забезпечення, який визначає набір обмежень для створення веб-API.

API із збереженням стану

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

API без стану

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

Ключові відмінності між Stateful і Stateless API

Нижче наведено деякі ключові відмінності між API із збереженням стану та без нього:

STATEFUL API

API без громадянства

1. Вимагайте сеансу на стороні сервера для зберігання даних про запити клієнтів 1. Не вимагайте сеансу на стороні сервера для зберігання даних про запити клієнтів
2. Іноді вони можуть працювати повільніше, ніж API без збереження даних, оскільки вони вимагають і зберігають дані, що потребує часу. 2. API без збереження стану є швидшими, оскільки вони не вимагають і не зберігають дані про запити.
3. API із збереженням стану непросто масштабувати  3. Легше масштабувати, оскільки їм не потрібно зберігати дані про попередні запити.
4. Зазвичай вважаються менш безпечними, ніж API без збереження стану 4. Зазвичай вони вважаються більш безпечними.

Що таке Amazon API Gateway?

Amazon API Gateway — це служба AWS, яка використовується для створення, підтримки та моніторингу API із збереженням стану (веб-сокет) і без збереження стану (HTTP і REST). Ми можемо використовувати ці API для доступу до:

  1. Будь-який сервіс AWS
  2. Дані, що зберігаються в хмарі AWS (наприклад, відро S3)
  3. Будь-які інші веб-сервіси.

Якщо ви розробник API, ви можете легко надати свої API стороннім розробникам.

Існує в основному два типи користувачів AWS API Gateway.

  1. i) Розробники API, які створюють і розгортають API, щоб увімкнути необхідні функції в API Gateway
  2. ii) Розробники програм, які є клієнтами розробника API.

Архітектура шлюзу API Amazon

архітектура

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

Функції Amazon API Gateway

  1. Він підтримує як API із збереженням стану, так і без нього. (Приклади: Websocket, HTTP і REST).
  2. Потужні механізми автентифікації включають AWS Identity, політики керування доступом і лямбда-авторизер.
  3. Портал розробників, де розробники API можуть публікувати свої API.
  4. Журнал виконання та доступ до CloudWatch, включаючи опцію налаштування будильників.
  5. Інтеграція з іншими службами AWS, такими як AWS Lambda і AWS Kinesis.
  6. Інтеграція з AWS WAF використовується для захисту від веб-експлойтів, а AWS X-Ray використовується для розуміння та підкреслення затримок продуктивності.

Початок роботи з Amazon API Gateway

Тепер ми збираємося створити безсерверний API. У безсерверному API ми можемо зосередитися на наших програмах замість того, щоб витрачати час на керування серверами. Це працює так:

  • API викликається клієнтом
  • API надсилає запит до лямбда
  • Лямбда виконує лямбда-функцію та надсилає результат назад до API
  • Після отримання результату від лямбда API відповідає клієнту

http API

Крок 1 – Створіть лямбда-функцію

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

створити функцію ламбада

Створення лямбда-функції:

1) Перейдіть до лямбда-консолі за адресою https://console.aws.amazon.com/lambda

2) Натисніть «Створити функцію».

3) Введіть «моя функція» як назву функції.

4) Виберіть Python 3.9 як середовище виконання.

5) Для цієї функції нам не потрібно буде нічого змінювати на вкладці «Дозволи та додаткові налаштування», оскільки для цієї демонстрації достатньо дозволів за замовчуванням.

4) Натисніть «Створити функцію».

КРОК 2 – Створення HTTP API

API Amazon

HTTP API надає кінцеву точку HTTP для вашої функції Lambda. Це працює так:

  • Клієнт надсилає запит до HTTP API
  • API запускає лямбда-функцію, яка потім виконує лямбда-функцію
  • Lambda надсилає результат до API
  • API відповідає клієнту отриманою відповіддю

Кроки для створення HTTP API

1) Відвідайте консоль API Gateway за адресою https://console.aws.amazon.com/apigateway

2) Натисніть «Побудувати», щоб створити свій перший HTTP API

3) Натисніть Додати інтеграцію для інтеграції

4) Виберіть Лямбда.

5) Введіть лямбда-функцію my-function.

6) Для імені API введіть my-http-api.

7) Натисніть «Далі».

8) Перегляньте створений для вас маршрут і виберіть Далі.

9) Перегляньте створену для вас сцену та виберіть «Далі».

10) Натисніть «Створити».

КРОК 3 Перевірте свій API –

Далі нам потрібно перевірити наш API, щоб переконатися, що він працює. Для цього ми будемо використовувати веб-браузер для виклику нашого API.

API Amazon

Щоб протестувати наш API

  1. Перейдіть до консолі API Gateway за адресою https://console.aws.amazon.com/apigateway
  2. Виберіть свій API.
  3. Занотуйте URL-адресу виклику вашого API. (див. зображення вище)
  4. Скопіюйте URL-адресу виклику API та вставте її у веб-браузер. З’єднайте URL-адресу виклику та назву вашої лямбда-функції, щоб викликати вашу лямбда-функцію. Консоль API Gateway створює маршрут, використовуючи назву вашої лямбда-функції «my-function» за замовчуванням. 

    Повна URL-адреса має виглядати так: https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Коли ви завантажуєте цю URL-адресу, ваш браузер надсилає запит GET до API

  1. Ви повинні побачити текст «Привіт від Lambda!» у вашому браузері. Отже, відповідь вашого API перевіряється.

API Amazon

Висновок

Ми створили наш перший HTTP API за допомогою Amazon API Gateway і AWS Lambda. Крім того, ми можемо досліджувати різні випадки використання того самого, і аналогічно ми можемо створити REST API, який надає більше функцій.

Вам сподобалася ця стаття? Розкажіть нам про свої думки в коментарях нижче. Також не забудьте вказати, яку статтю ви б хотіли прочитати наступною.

Часова мітка:

Більше від Аналітика Vidhya