Введение в 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-интерфейсы относительно дешевле, чем API-интерфейсы REST, и имеют меньше функций, чем более поздние.

API REST

REST API — это тип API, который следует набору архитектурных принципов, называемых REST (передача репрезентативного состояния). REST — это стиль архитектуры программного обеспечения, который определяет набор ограничений для создания веб-API.

API с отслеживанием состояния

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

API без сохранения состояния

API без сохранения состояния, с другой стороны, не хранит информацию о клиентских запросах. Он обрабатывает каждый запрос независимо, не сохраняя никаких данных о предыдущих запросах. Это означает, что API не поддерживает сеанс на стороне сервера и не использует данные из предыдущих запросов для обработки последующих запросов.

Ключевые различия между API с сохранением состояния и API без сохранения состояния

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

STATEFUL API

API без сохранения состояния

1. Требовать сеанс на стороне сервера для хранения данных о клиентских запросах 1. Не требовать сеанса на стороне сервера для хранения данных о клиентских запросах
2. Иногда они могут быть медленнее, чем API без сохранения состояния, потому что они требуют и сохраняют данные, что требует времени. 2. API без сохранения состояния работают быстрее, поскольку они не требуют и не хранят данные о запросах.
3. Stateful API нелегко масштабировать  3. Легче масштабировать, поскольку им не нужно хранить данные о предыдущих запросах.
4. Обычно считается менее безопасным, чем API без сохранения состояния. 4. Обычно они считаются более безопасными.

Что такое Amazon API Gateway?

Amazon API Gateway — это сервис AWS, который используется для создания, обслуживания и мониторинга API с сохранением состояния (веб-сокет) и 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 как с сохранением состояния, так и без него. (Примеры: веб-сокет, HTTP и REST).
  2. Мощные механизмы аутентификации включают AWS Identity, политики управления доступом и авторизатор Lambda.
  3. Портал разработчиков, где разработчики API могут публиковать свои API.
  4. Ведение журнала выполнения и доступа для CloudWatch, включая возможность установки сигналов тревоги.
  5. Интеграция с другими сервисами AWS, такими как AWS Lambda и AWS Kinesis.
  6. Интеграция с AWS WAF используется для защиты от веб-эксплойтов, а AWS X-Ray используется для понимания и выделения задержек производительности.

Начало работы с Amazon API Gateway

Теперь мы собираемся создать бессерверный API. В бессерверном API мы можем сосредоточиться на наших приложениях, а не тратить время на управление серверами. Это работает следующим образом:

  • API вызывается клиентом
  • API отправляет запрос на лямбду
  • Lambda выполняет лямбда-функцию и отправляет результат обратно в API.
  • Получив результат от лямбды, API отвечает клиенту

http API

Шаг 1 — Создайте лямбда-функцию

Функция Lambda используется для серверной части нашего API. Lambda запускает код только тогда, когда это необходимо. Он также автоматически масштабируется от нескольких запросов в день до тысячи запросов в секунду.

создать лямбда-функцию

Создание лямбда-функции:

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

2) Нажмите на функцию «Создать».

3) Введите «my-function» в качестве имени функции.

4) Выберите Python 3.9 в качестве среды выполнения.

5) Для этой функции нам не нужно ничего менять на вкладке «Разрешения и дополнительные настройки», так как разрешений по умолчанию достаточно для этой демонстрации.

4) Нажмите на функцию «Создать».

ШАГ 2 – Создание HTTP API

Amazon API

HTTP API предоставляет конечную точку HTTP для вашей функции Lambda. Это работает следующим образом:

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

Шаги для создания HTTP API

1) Посетите консоль шлюза API по адресу 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.

Amazon API

Чтобы протестировать наш API

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

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

  1. Вы должны увидеть текст «Привет от Lambda!» в вашем браузере. Следовательно, ответ вашего API проверен.

Amazon API

Заключение

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

Тебе понравилась эта статья? Расскажите нам свои мысли в комментарии ниже. Кроме того, не забудьте упомянуть, какую статью вы хотели бы прочитать следующей.

Отметка времени:

Больше от Аналитика Видхья