Начало работы с AWS

Создание базового интернет-приложения

Развертывание интернет-приложения и добавление интерактивных элементов с помощью API и базы данных

В этом модуле мы развернем бессерверную функцию с помощью сервиса API Gateway.

Введение

В этом модуле мы будем использовать Amazon API Gateway для создания RESTful API, с помощью которого можно будет вызывать функцию Lambda из веб-клиента (как правило, это веб-браузер пользователя). API Gateway будет работать как промежуточный уровень между клиентом HTML, созданным в модуле 1, и бессерверным внутренним компонентом, созданным в модуле 2.

Обсуждаемые темы

  • Создание нового API с помощью API Gateway
  • Определение методов HTTP (Hypertext Transfer Protocol) в API
  • Вызов функции Lambda из API
  • Включение CORS в API для использования на веб-сайте
  • Тестирование API, созданного с помощью API Gateway, в Консоли управления AWS

Основные понятия

RESTful API. REST расшифровывается как Representational State Transfer (передача репрезентативного состояния) и представляет собой архитектурный шаблон для создания веб-сервисов. API – это прикладной программный интерфейс. Следовательно, RESTful API реализует этот архитектурный шаблон.

Методы запросов HTTP. Методы HTTP предназначены для обеспечения связи между клиентами и серверами. Методы (например, GET и PUT в протоколе HTTP) используются для указания действия, выполняемого с ресурсом.

CORS. Механизм CORS (Cross Origin Resource Sharing) использует заголовки HTTP, чтобы браузер разрешил интернет-приложению выполняться в одном источнике (домене) и мог получать доступ к выбранным ресурсам с сервера в другом источнике.

Оптимизированный для периферии. Ресурс, который использует глобальную инфраструктуру AWS для эффективного обслуживания клиентов по всему миру.

 Время выполнения

5 минут

 Используемые сервисы

Реализация

    1. Войдите в консоль API Gateway.
    2. Нажмите оранжевую кнопку Create API (Создать API).
    3. Найдите поле REST API и нажмите в нем оранжевую кнопку Build (Собрать).
    4. В поле Choose the protocol (Выбор протокола) выберите REST.
    5. В поле Create new API (Создать новый API) выберите New API (Новый API).
    6. В поле API name (Имя API) введите HelloWorldAPI.
    7. Выберите пункт Edge optimized (Оптимизированный для периферии) в раскрывающемся списке Endpoint Type (Тип адреса). Обратите внимание, что адреса, оптимизированные для периферии, лучше всего подходят для географически распределенных клиентов. Это делает их хорошим вариантом для публичных сервисов, доступных через Интернет. Как правило, региональные адреса используются для интерфейсов API, доступ к которым осуществляется преимущественно из одного и того же региона AWS.
    8. Нажмите синюю кнопку Create API (Создать API). Параметры должны выглядеть примерно так, как на следующем снимке экрана:
    1. В меню навигации слева щелкните Resources (Ресурсы) под API HelloWorld.
    2. Выбрав ресурс «/», нажмите Create Method (Создать метод) в раскрывающемся меню Action (Действие).
    3. Выберите POST в появившемся раскрывающемся списке, а затем установите флажок.
    4. Выберите значение Lambda Function (Функция Lambda) в качестве типа интеграции.
    5. Введите HelloWorldFunction в поле Function (Функция).
    6. Нажмите синюю кнопку Save (Сохранить).
    7. Должно появиться сообщение о том, что вы предоставляете создаваемому интерфейсу API разрешение на вызов функции Lambda. Нажмите кнопку ОК.
    8. Выбрав созданный метод POST, нажмите Enable CORS (Включить CORS) в раскрывающемся меню Action (Действие).
    9. Оставьте флажок POST установленным и нажмите синюю кнопку Enable CORS and replace existing CORS headers (Включить CORS и заменить существующие заголовки CORS).

    10. Должно появиться сообщение с предложением подтвердить изменения метода. Нажмите синюю кнопку Yes, replace existing values (Да, заменить существующие значения).

    1. В раскрывающемся списке Actions (Действия) выберите пункт Deploy API (Развертывание API).
    2. Выберите пункт [New Stage] (Новый этап) в раскрывающемся списке Deployment stage (Этап развертывания).
    3. В качестве значения параметра Stage Name (Имя этапа) введите dev.
    4. Выберите Deploy (Развернуть).
    5. Скопируйте и сохраните URL-адрес из поля Invoke URL (URL-адрес для вызова). Он потребуется в модуле 5.
    1. В левой области навигации нажмите Resources (Ресурсы).
    2. Справа появится список методов для нашего API. Выберите метод POST.
    3. Нажмите маленький синий значок молнии.
    4. Вставьте в поле Request Body (Текст запроса) следующий текст:
    {
        "firstName":"Grace",
        "lastName":"Hopper"
    }

    5. Нажмите синюю кнопку Test (Тестировать).

    6. С правой стороны должен отобразиться ответ с кодом 200.

    7. Отлично! Мы создали и протестировали API для вызова нашей функции Lambda.


Архитектура приложения

Модуль 3 завершен. Пришло время проверить нашу архитектуру:

Мы добавили API Gateway и подключили его к существующей функции Lambda. Теперь мы можем активировать нашу функцию с помощью вызова API. Мы по-прежнему не можем совершать этот вызов из нашего веб-клиента. Сначала мы добавим нашу таблицу данных в модуле 4, а затем соединим все компоненты в модуле 5.

Был ли полезен этот модуль?

Создание таблицы данных