Общие вопросы

Вопрос. Что такое Amazon API Gateway?

Amazon API Gateway – это полностью управляемый сервис для разработчиков, который упрощает публикацию, обслуживание, мониторинг и обеспечение безопасности API в любых масштабах. Выполнив несколько простых действий в Консоли управления AWS, можно создать API, предоставляющий доступ к данным, бизнес-логике или возможностям серверных сервисов для приложений, работающих на Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), AWS Elastic Beanstalk, для кода, выполняемого на AWS Lambda, а также любых интернет-приложений. Amazon API Gateway выполняет любые задания, связанные с приемом и обработкой сотен тысяч одновременных вызовов API, включая управление трафиком, авторизацию и контроль доступа, мониторинг и управление версиями API. Работа с Amazon API Gateway не требует минимальных платежей или стартовых вложений. Что касается API HTTP и API REST, оплате подлежат только полученные вызовы API и фактический объем исходящего трафика. Что касается API WebSocket, вы платите только за полученные и отправленные сообщения, а также за то время, в течение которого пользователь или устройство были подключены к API WebSocket.

Вопрос. Для чего используют Amazon API Gateway?

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

1) Измерение показателей. API Gateway помогает сформировать планы по измерению показателей работы API и ограничению доступа к ним для сторонних разработчиков. Можно определить набор планов, настроить ограничения и предельные квоты для каждого ключа API. API Gateway автоматически измеряет трафик к вашим API и позволяет извлечь данные по использованию каждого ключа API.

2) Безопасность. API Gateway предоставляет множество инструментов для авторизации доступа к API и управления доступом к сервисным операциям. Для авторизации доступа к API сервис API Gateway позволяет использовать инструменты AWS для администрирования и обеспечения безопасности, например AWS Identity and Access Management (IAM) или Amazon Cognito. API Gateway может от вашего имени верифицировать подписанные вызовы API с помощью той же последовательности действий, которая используется для API сервисов AWS. Сервис API Gateway применяет специальные средства авторизации, написанные в виде функций AWS Lambda, и помогает верифицировать входящие токены на предъявителя. Это позволяет не заботиться об авторизации при разработке серверного кода.

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

4) Мониторинг процессов. После публикации API и начала его использования Amazon API Gateway предоставляет панель управления метриками для отслеживания вызовов к сервисам. Благодаря интеграции с сервисом Amazon CloudWatch панель управления API Gateway позволяет отображать метрики производительности веб-сервисов, которые включают данные о вызовах API, задержке передачи данных и коэффициенте ошибок. Можно включить подробное отображение метрик для каждого из методов в API и фиксировать данные об ошибках, доступе и отладке в журналах CloudWatch Logs.

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

6) Сервис, созданный для разработчиков. API Gateway позволяет быстро создавать API и определять статический контент для их ответов, чтобы упростить разработчикам различного профиля процесс создания приложений и ускорить их выход на рынок. Команды разработчиков, работа которых зависит от ваших API, могут начать разработку, пока вы создаете серверные процессы.

7) Двустороннее взаимодействие в режиме реального времени. Создавайте приложения для двустороннего взаимодействия в режиме реального времени, например приложения чатов, панелей управления с потоковой передачей и уведомлений, не прибегая к подготовке серверов или управлению ими. API Gateway поддерживает постоянное соединение между подключенными пользователями и обеспечивает возможность передачи сообщений между ними.

Вопрос. Какие типы API поддерживает Amazon API Gateway?

Amazon API Gateway предлагает два варианта создания интерфейсов API RESTful – API HTTP и API REST, а также один вариант создания API WebSocket.

API HTTP. Интерфейсы API HTTP оптимизированы для создания API, которые передают функции AWS Lambda или серверные части HTTP, что делает их идеальными для обработки бессерверных рабочих нагрузок. В настоящее время они не предоставляют функции управления API.

API REST. Интерфейсы API REST предлагают функции прокси‑сервера для API и возможности управления в составе одного решения. API REST предоставляют функции управления API, такие как планы использования, ключи API, публикации и API для монетизации.

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

Вопрос: Как начать работу с API HTTP в API Gateway?

Чтобы начать работу с интерфейсами API HTTP, можно использовать консоль Amazon API Gateway, интерфейс командной строки AWS, AWS SDK или AWS CloudFormation. Подробнее о начале работы с API HTTP см. в документации.

Вопрос: Как начать работу с API REST в API Gateway?

Чтобы начать работу с интерфейсами API REST, можно использовать консоль Amazon API Gateway, интерфейс командной строки AWS или AWS SDK. Подробнее о начале работы с API REST см. в документации.

Вопрос: В каких случаях при создании API RESTful следует использовать API HTTP а в каких случаях – API REST?

Создать API RESTful можно как с помощью API HTTP, так и с помощью API REST в Amazon API Gateway.

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

API HTTP идеально подходят для следующих случаев.

  1. Создание прокси‑интерфейсов API для AWS Lambda или любого адреса HTTP.
  2. Создание современных API с авторизацией OAuth 2 и OIDC. 
  3. Рабочие нагрузки, которые могут очень сильно вырасти.
  4. API для чувствительных к задержкам рабочих нагрузок.
 
API REST идеально подходят в следующем случае.
 
  1. Клиенты хотят заплатить фиксированную цену и получить полный набор функций, необходимых для создания и публикации своих API, а также управления ими. 

Вопрос: Какие возможности входят в стандартный пакет API HTTP из API Gateway?

Стандартный пакет интерфейсов API HTTP включает поддержку CORS, OIDC и OAuth2 для аутентификации и авторизации, а также автоматическое развертывание на этапах.

Вопрос: Можно ли импортировать определение OpenAPI для создания интерфейса API HTTP?

Да, вы можете импортировать определение API с помощью OpenAPI 3. Это приведет к созданию маршрутов, интеграций и моделей API. Подробнее об импорте определений OpenAPI см. в документации.

Вопрос: Как перейти от текущего API REST к API HTTP?

Для перехода от текущего интерфейса API REST к API HTTP в Amazon API Gateway выполните следующие действия.

  1. Убедитесь, что все необходимые вам функции доступны в HTTP. Полный список функций см. в документации
  2. Перейдите к API REST и экспортируйте из него определение OpenAPI.
  3. Перейдите к API HTTP и импортируйте определение OpenAPI из предыдущего действия.
  4. Проверьте работу функций API.
  5. Обновите клиенты, указав новый URL.

Несмотря на нормальную работу API вы можете заметить, что некоторые функции отсутствуют. Для определения недостающих функций просмотрите поля Info (Информация), Warning (Предупреждение) и Error (Ошибка) в операции импорта. Подробнее о переходе с API REST на API HTTP см. в документации.

Вопрос: Как узнать, будет ли мой текущий API REST работать как API HTTP?

Во‑первых, перейдите к вашему API REST и экспортируйте из него определение OpenAPI. Затем перейдите к API HTTP и импортируйте определение OpenAPI из предыдущего действия. Несмотря на нормальную работу API вы можете заметить, что некоторые функции отсутствуют. Для определения недостающих функций просмотрите поля Info (Информация), Warning (Предупреждение) и Error (Ошибка) в операции импорта. Интерфейс командной строки AWS вернет информацию о вашем API в полях Info (Информация) и Warning (Предупреждение). Дополнительную информацию см. в документации.

Вопрос. Как начать работу с API WebSocket в Amazon API Gateway? »

Сначала нужно создать WebSocket API с помощью AWS Management Console, AWS CLI или SDK AWS. После этого можно задать маршрутизацию WebSocket, указав такие серверные сервисы, как AWS Lambda, Amazon Kinesis или ваш адрес HTTP, которые будут вызываться в соответствии с содержимым сообщений. См. документацию по началу работы с API WebSocket в API Gateway.

Вопрос. Можно ли создавать адреса HTTPS?

Да, все API, созданные с помощью сервиса Amazon API Gateway, поддерживают только конечные точки HTTPS. Amazon API Gateway не поддерживает конечные точки без шифрования (HTTP). По умолчанию Amazon API Gateway назначает для API внутренний домен, который автоматически использует сертификат сервиса Amazon API Gateway. Настраивая API для работы под другим доменным именем, вы можете предоставить для домена собственный сертификат.

Вопрос. Какие типы данных можно использовать в Amazon API Gateway?

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

Вопрос. С какими серверными системами может взаимодействовать Amazon API Gateway?

Amazon API Gateway может выполнять функции AWS Lambda в вашем аккаунте, запускать машины состояний AWS Step Functions или вызывать конечные точки HTTP, размещенные в AWS Elastic Beanstalk, Amazon EC2, а также операции HTTP (размещенные на отличных от AWS платформах), доступные через публичный Интернет. API Gateway также позволяет указать шаблон привязки для создания возвращаемого статического содержимого. Благодаря этому вы сможете имитировать API-интерфейсы еще до того, как серверные компоненты будут готовы. API Gateway можно также напрямую интегрировать с другими сервисами AWS. Например, можно открыть в сервисе API Gateway метод API, который будет отправлять данные напрямую в Amazon Kinesis.

Вопрос. Для каких клиентских платформ Amazon API Gateway может генерировать пакеты SDK?

API Gateway генерирует специальные пакеты SDK для разработки мобильных приложений на базе Android и iOS (Swift и Objective-C) и для разработки интернет-приложений на JavaScript. Кроме того, API Gateway поддерживает генерацию SDK для Ruby и Java. Определив API и его модели в API Gateway, с помощью Консоли AWS или API сервиса API Gateway можно сгенерировать и загрузить клиентский пакет SDK. Клиентские SDK генерируются только для API REST в Amazon API Gateway.

Вопрос: В каких регионах AWS доступен сервис Amazon API Gateway?

Просмотреть доступность API HTTP, API REST, API WebSocket можно в таблице регионов AWS здесь.

Вопрос. Какие действия можно выполнять в консоли Amazon API Gateway?

В консоли Amazon API Gateway можно определять API REST и связанные с ним ресурсы и методы, управлять жизненным циклом API, генерировать клиентские SDK и просматривать метрики API. Для определения планов использования ваших API, управления ключами API разработчиков и установки предельных квот и ограничений можно также использовать консоль API Gateway. Все эти действия можно также выполнять с помощью API сервиса Amazon API Gateway.

Вопрос. Что такое ресурс?

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

Вопрос. Что такое метод?

Каждый ресурс отдельно взятого API REST может поддерживать один или несколько стандартных методов HTTP. Разработчик определяет команды, которые должны поддерживаться ресурсом (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), и их реализацию. Например, команда GET ресурса cars должна возвращать список автомобилей. Чтобы подключить все методы внутри ресурса к единому адресу сервера, API Gateway также поддерживает специальный метод «ANY».

Вопрос. Что такое план использования?

Планы использования назначаются для сторонних разработчиков для ограничения доступа к определенным API, определения ограничений и предельных квот запросов и связывания их с ключами API. Для анализа использования API и создания платежных документов можно извлечь данные использования по конкретным ключам API. Например, можно создать базовый, профессиональный и корпоративный планы. Для базового плана использования можно разрешить, к примеру, 1000 запросов в день и не более 5 запросов в секунду (RPS).

Вопрос. Что представляет собой жизненный цикл API в Amazon API Gateway?

Каждый API REST сервиса Amazon API Gateway может содержать множество стадий. Наличие стадий упрощает жизненный цикл разработки API. Например, после создания API можно выполнить их развертывание до стадии разработки, а после подготовки их к использованию в рабочей среде – развертывание до рабочей стадии.

Вопрос. Что такое стадия?

Стадии сервиса Amazon API Gateway аналогичны тегам. Они определяют готовность к развертыванию до того или иного этапа. Например, вы можете определить стадию разработки и выполнить развертывание API cars до этой стадии. В этом случае ресурс будет доступен по адресу https://www.myapi.com/dev/cars. Можно также задать пользовательские доменные имена, которые будут указывать непосредственно на стадию, что позволит избежать использования дополнительного параметра пути. Например, если адрес myapi.com будет указывать непосредственно на стадию разработки, ваш ресурс cars будет доступен по адресу https://www.myapi.com/cars. Стадии можно настроить с помощью переменных, которые доступны в шаблонах настройки или привязки API.

Вопрос. Что представляют собой переменные стадии?

Переменные стадии позволяют задавать пары «ключ-значение» для значений конфигурации, связанных с той или иной стадией. Эти значения, аналогично переменным окружения, можно использовать для настройки API. Например, можно задать конечную точку HTTP в качестве переменной стадии для интеграции метода и использовать эту переменную в конфигурации API вместо жестко заданной конечной точки. Это позволяет использовать разные конечные точки для каждой стадии (например для разработки, бета-тестирования и рабочей версии) в одной и той же конфигурации API. Переменные стадии также доступны в шаблонах привязки и могут быть использованы для передачи параметров конфигурации серверу Lambda или HTTP.

Вопрос. Что такое политика ресурса?

Политика ресурса – это прикрепляемый к API документ политики JSON, который определяет, может ли указанный принципал (как правило, пользователь или роль IAM) вызывать API. С помощью политики ресурса можно предоставлять безопасный доступ к API пользователям другого аккаунта AWS или разрешать вызов API только с IP-адресов источника из определенных диапазонов или блоков CIDR. Политики ресурса можно использовать с API REST в Amazon API Gateway.

Вопрос. Что делать, если развертывание до определенной стадии было выполнено ошибочно?

Amazon API Gateway сохраняет историю развертываний. Это позволяет в любой момент выполнить откат к предыдущей стадии развертывания с помощью API сервиса Amazon API Gateway или консоли.

Вопрос. Можно ли использовать свои определения API Swagger?

Да. Можно использовать наш инструмент импорта с открытым исходным кодом Swagger importer для импорта ваших определений API Swagger в сервис Amazon API Gateway. С помощью инструмента импорта Swagger importer можно создавать и развертывать новые API, а также обновлять существующие.

Вопрос. Как можно монетизировать собственные API в API Gateway?

Вы можете монетизировать свои API в API Gateway, разместив их в качестве продуктов на AWS Marketplace. Для этого сначала необходимо зарегистрироваться в качестве продавца на AWS Marketplace, а затем предоставить свои планы использования API как продуктов для сервиса API Gateway. Здесь можно узнать подробнее о монетизации API.

Вопрос. Как можно задокументировать собственный API в Amazon API Gateway?

API Gateway предоставляет возможность создавать, обновлять и удалять документацию, связанную с каждой частью вашего API, например с методами или ресурсами. Доступ к документации, относящейся к API, можно получить через SDK AWS, интерфейс командной строки или через вызовы RESTful. Можно также редактировать строки документации непосредственно в консоли API Gateway. Документацию можно также импортировать в виде файлов Swagger, как часть API, или отдельно, что позволяет добавлять или обновлять документацию без внесения изменений в определения API. Для документации, импортируемой из файлов Swagger или экспортируемой в них, API Gateway соблюдает требования спецификации Open API. Документация поддерживается для API REST в API Gateway.

Вопрос. Как избежать создания лишних копий сообщений об ошибках и других разделов документации, часто повторяющихся в моем API?

Помимо обеспечения поддержки документирования API в соответствии со стандартами, сервис API Gateway поддерживает наследование документации. Это дает возможность один раз определить строку документации и затем использовать это определение в нескольких местах. Механизм наследования упрощает процесс определения документации API и позволяет сконвертировать ее в стандартное представление при экспорте API в виде файла Swagger.

Вопрос. Можно ли разрешить доступ к частным API только для определенного облака Amazon VPC или адреса VPC?

Да, можно применить к API политику ресурса, чтобы разрешить доступ только для определенного облака Amazon VPC или адреса VPC. Кроме того, с помощью политики ресурса можно предоставить доступ к частному API для облака Amazon VPC или адреса VPC из другого аккаунта.

Безопасность и авторизация

Вопрос. Как управлять доступом к своим API?

Amazon API Gateway позволяет дополнительно указать методы API, которые будут требовать авторизации. Установив требование авторизации для метода, можно использовать AWS Signature Version 4 или средства авторизации Lambda для поддержки выбранной стратегии авторизации токенов на предъявителя.

Вопрос. Как работает AWS Signature Version 4?

Можно использовать данные для доступа AWS (ключи доступа и секретные ключи) для подписи запросов в сервисах и выполнять авторизацию доступа аналогично другим сервисам AWS. Процесс подписи запроса API в сервисе Amazon API Gateway управляется с помощью специального SDK API Gateway, созданного для вашего сервиса. С помощью Amazon Cognito можно получить временные данные для доступа, связанные с ролью в вашем аккаунте AWS.

Вопрос. Что такое средство авторизации Lambda?

Средства авторизации Lambda – это функции AWS Lambda. Специальные средства авторизации запросов позволяют авторизовать доступ к API с использованием стратегии авторизации токенов на предъявителя, например OAuth. При вызове API сервис API Gateway проверяет наличие настроенного средства авторизации Lambda, а затем вызывает функцию AWS Lambda при получении входящего токена авторизации. Сервис Lambda можно использовать для реализации различных стратегий авторизации (например, верификация JWT, вызов провайдера OAuth), которые возвращают политики IAM, используемые для авторизации запроса. Если средство авторизации возвращает действительную политику, сервис API Gateway кэширует политику, связанную с входящим токеном, на срок до 1 часа.

Вопрос. Может ли сервис Amazon API Gateway генерировать ключи API для использования сторонними разработчиками?

Да. API Gateway может генерировать ключи API и связывать их с планом использования. Вызовы, полученные от каждого ключа API, отслеживаются и записываются в логи Amazon CloudWatch Logs, которые можно активировать для каждой стадии. Тем не менее, использовать ключи API для авторизации не рекомендуется. Ключи API рекомендуется использовать для отслеживания использования API сторонними разработчиками, а для авторизации применять более безопасные механизмы, такие как подпись вызовов API или токены OAuth.

Вопрос. Как устранить неправомерное использование API или предотвратить угрозу такового?

Сервис API Gateway поддерживает настройку ограничений каждого из методов API. Для каждого метода API REST и каждого маршрута в API WebSocket можно задать ограничение числа запросов в секунду для стандартного уровня нагрузки и для пиковых случаев. Более того, сервис API Gateway автоматически защищает ваши серверные системы от распределенных атак типа «отказ в обслуживании» (DDoS), выполненных как при помощи поддельных запросов (на уровне7), так и от синхронных атак (на уровне 3).

Вопрос. Можно ли проверить, что вызов сервера был выполнен сервисом API Gateway?

Да. Сервис Amazon API Gateway может генерировать используемые на стороне клиента сертификаты SSL с предоставлением вам доступа к публичным ключам этих сертификатов. Вызовы сервера могут выполняться с помощью сгенерированных сертификатов, и вы можете выполнять проверку вызовов, исходящих от Amazon API Gateway, используя публичный ключ сертификата.

Вопрос. Можно ли использовать сервис AWS CloudTrail совместно с сервисом Amazon API Gateway?

Да. Сервис Amazon API Gateway интегрирован с сервисом AWS CloudTrail, что позволяет получить полную, доступную для анализа историю изменений ваших API REST. Все вызовы API, сделанные к API сервиса Amazon API Gateway для создания, изменения, удаления или развертывания API REST, регистрируются в логах CloudTrail в вашем аккаунте AWS.

Вопрос. Как Amazon API Gateway работает с Amazon Virtual Private Cloud (Amazon VPC)?

Amazon API Gateway позволяет перенаправлять запросы к серверным ресурсам HTTP/HTTPS, работающим в Amazon VPC, настроив частные интеграции с помощью ссылок VPC. В Amazon API Gateway можно использовать сертификаты SSL на стороне клиента, чтобы убедиться, что запросы к серверным системам были отправлены сервисом с использованием публичного ключа сертификата. Кроме того, в Amazon API Gateway можно создавать частные API, доступные только для ресурсов в Amazon VPC через адреса Amazon VPC.

Вопрос. Можно ли разрешить доступ к частным API только для определенного облака Amazon VPC или адреса VPC?

Да, можно применить к API политику ресурса, чтобы разрешить доступ только для определенного облака Amazon VPC или адреса VPC. Кроме того, с помощью политики ресурса можно предоставить доступ к частному API для облака Amazon VPC или адреса VPC из другого аккаунта.

Вопрос: Можно ли настроить API REST в API Gateway для использования TLS 1.1 или выше?

Если вы используете API REST, можно настроить базу раздачи CloudFront с применением пользовательского сертификата SSL в своем аккаунте и использовать ее с региональными API‑интерфейсами в API Gateway. Затем можно настроить политику безопасности для базы раздачи CloudFront с использованием TLS 1.1 или выше в зависимости от необходимого вам уровня безопасности и соответствия нормативным требованиям.

Управление, метрики и журналы

Вопрос. Как выполнять мониторинг API с помощью сервиса Amazon API Gateway?

Сервис Amazon API Gateway регистрирует данные о вызовах, задержке и коэффициенте ошибок API в логах сервиса Amazon CloudWatch в вашем аккаунте AWS. Метрики также доступны в панели управления API REST консоли Amazon API Gateway. API Gateway также измеряет использование сторонними разработчиками, данные доступны в консоли API Gateway и посредством API.

Вопрос. Можно ли настроить предупреждения для метрик Amazon API Gateway?

Да, сервис Amazon API Gateway отправляет в Amazon CloudWatch данные логов и метрики. Можно настроить специальные предупреждения с помощью консоли Amazon CloudWatch.

Вопрос. Как выполнить настройку метрик для Amazon API Gateway?

По умолчанию Amazon API Gateway отслеживает трафик на уровне API REST. При необходимости можно включить режим подробного отображения метрик для каждого метода вашего API REST с помощью API настройки развертывания или консоли. Подробные метрики также регистрируются в логах Amazon CloudWatch, и их использование оплачивается в соответствии с тарифами CloudWatch.

Вопрос. Можно ли определить, какую версию API используют пользователи?

Да. В метриках содержится информация о версиях API REST и стадиях их развертывания. Кроме того, вы можете включить метрики для любого метода, используемого вашим API REST.

Вопрос. Предусмотрено ли в Amazon API Gateway ведение журналов?

Да. Сервис Amazon API Gateway интегрирован с Amazon CloudWatch Logs. Вы можете активировать использование журналов для любой стадии вашего API. Для каждого метода API REST можно определить состав регистрируемой в журналах информации и полноту данных о запросах и ответах.

Вопрос. Через какой промежуток времени журналы становятся доступными?

Журналы, предупреждения, коэффициенты ошибок и другие метрики сохраняются в Amazon CloudWatch и становятся доступными в режиме, близком к реальному времени.

Регулирование и кэширование

Вопрос. Как защитить серверные системы и интернет-приложения от сбоев при резком возрастании объема трафика?

Amazon API Gateway позволяет ограничивать прием запросов на разных уровнях, в том числе глобально, а также выполнять регулирование на уровне вызовов сервисов. Значение ограничений можно устанавливать для стандартного режима запросов и для пиковых ситуаций. Например, владелец API может задать для определенного метода API REST ограничение, равное 1000 запросов в секунду, а также настроить Amazon API Gateway для обработки всплеска запросов, установив ограничение в 2000 запросов в секунду на несколько секунд. Amazon API Gateway отслеживает число запросов в секунду. Любой запрос, полученный сверх заданного предела, будет отклоняться с кодом HTTP 429 («слишком много запросов»). Клиентские SDK (кроме Javascript), сгенерированные сервисом Amazon API Gateway, при получении такого ответа автоматически повторяют свои вызовы.

Вопрос. Можно ли ограничить вызовы моего API отдельными разработчиками?

Да. Регулирующие ограничения для отдельных ключей API можно установить с помощью планов использования.

Вопрос. Чем полезна возможность ограничения?

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

Вопрос. На каких уровнях сервис Amazon API Gateway может ограничивать входящий трафик API?

Регулирующие ограничения можно задавать на уровне методов. Вы можете отредактировать значения регулирующих ограничений в настройках метода с помощью API или консоли сервиса Amazon API Gateway.

Вопрос. Как применяются правила ограничений?

Параметры шлюза API, которые относятся к ограничению, применяются в следующем порядке: 1) ограничения для каждого метода для каждого клиента, которые устанавливаются для этапа API в плане эксплуатации; 2) ограничения для каждого клиента, которые устанавливаются в плане эксплуатации; 3) ограничения для каждого метода по умолчанию и индивидуальные ограничения для каждого метода, которые устанавливаются в настройках этапа API; 4) ограничения для каждого региона на уровне аккаунта.

Вопрос. Позволяет ли сервис Amazon API Gateway кэшировать результаты вызовов API?

Да. Для кэширования результатов вызовов API необходимо выделить кэш API Gateway и задать его объем в гигабайтах. Кэш выделяется под определенные стадии ваших API. Кэширование повышает производительность и сокращает объем входящего трафика сервера. Путем настройки кэширования можно контролировать построение ключа кэша и время жизни (TTL) данных, сохраняемых для каждого метода. API Gateway также предоставляет API управления, которые позволяют очистить кэш любой из стадий. Кэширование доступно для API REST в API Gateway.

Вопрос. Что произойдет, если мой API будет одновременно вызван большим количеством конечных пользователей?

Если кэширование отключено и ограничения приема запросов не применяются, все запросы будут передаваться на сервер сервиса, пока не будут достигнут лимит запросов на уровне аккаунта. Если заданы ограничения приема запросов, то сервис Amazon API Gateway отклонит избыточное количество и передаст на сервер сервиса лишь запросы в пределах установленного лимита. Если настроено кэширование, сервис Amazon API Gateway в течение заданного (настраиваемого) времени будет возвращать сохраненные в кэше ответы на повторяющиеся запросы, которые подпадают под заданные ограничения. Такой баланс между сервером и клиентом позволяет обеспечить оптимальную производительность API для поддерживаемых приложений. Запросы, сброшенные в результате регулирования, автоматически повторяются клиентскими SDK, которые сгенерированы сервисом Amazon API Gateway. По умолчанию в сервисе Amazon API Gateway не настроен кэш для используемых методов API.

Вопрос. Как выполняется масштабирование API?

Сервис Amazon API Gateway действует как прокси по отношению к настроенным вами серверным процессам. Amazon API Gateway автоматически масштабируется, чтобы обработать получаемый вашим API объем трафика. Amazon API Gateway самостоятельно не ограничивает и не регулирует число запросов, и если в консоли API Gateway не настроено регулирование и кэширование, то все запросы передаются серверным процессам.

Оплата

Вопрос. Как оплачивается пользование сервисом Amazon API Gateway?

Используя Amazon API Gateway, нужно платить за миллион вызовов API плюс стоимость исходящего трафика (за гигабайт). При выделении кэша для API действует почасовой тариф. Для API WebSocket сервис API Gateway выставляет счета, основанные на отправленных и полученных сообщениях, а также количестве минут, в течение которых клиент был подключен к API. Подробные сведения о стоимости вызовов API, передачи данных и кэширования для каждого региона см. на странице цен на API Gateway.

Вопрос. Кто оплачивает вызовы API сервиса Amazon API Gateway, выполненные сторонними разработчиками?

Вызовы API в рамках сервиса API Gateway оплачивает владелец API.

Вопрос. Если ответ API выдан из кэша, оплачивается ли он как обычный вызов API?

Да. Плата за вызовы API начисляется одинаково, независимо от того, обслуживается ли ответ вашим серверным процессом или выдается из кэша Amazon API Gateway.

API WebSocket

Вопрос. Каков маршрут WebSocket в Amazon API Gateway?

Маршрут WebSocket в Amazon API Gateway используется для правильной маршрутизации сообщений к конкретной интеграции. Вы указываете ключ маршрута и сервер интеграции для вызова при определении API WebSocket. Ключ маршрута – это атрибут в теле сообщения. Можно также задать интеграцию по умолчанию для ключей маршрута без соответствия. Подробнее маршрутизация описана в документации.

Вопрос. Как отправлять сообщения подключенным клиентам из серверного сервиса?

Когда новый клиент подключается к API WebSocket, для этого клиента создается уникальный URL-адрес, который называется URL-адресом обратного вызова. Этот URL-адрес обратного вызова можно использовать для отправки сообщений клиенту из серверного сервиса.

Вопрос. Как я могу разрешить доступ к API WebSocket в Amazon API Gateway?

В Amazon API Gateway вы можете использовать роли и политики IAM или средства авторизации AWS Lambda для разрешения доступа к API WebSocket.

Вопрос. Каким образом мой серверный сервис получает информацию о том, когда клиент подключен или отключен, от соединения WebSocket в Amazon API Gateway?

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

Вопрос. Каким образом мой серверный сервис может определить, подключен ли еще клиент к соединению WebSocket?

Можно применить метод URL GET к подключению, чтобы определить, подключен ли клиент к соединению WebSocket. См. документацию об использовании URL-адреса обратного вызова.

Вопрос. Можно ли отключить клиента от серверного сервиса?

Да, можно отключить подключенного клиента от серверного сервиса с помощью URL-адреса обратного вызова.

Вопрос. Каков максимальный размер сообщения, поддерживаемый для API WebSocket?

Максимальный поддерживаемый размер сообщения составляет 128 КБ. См. документацию, чтобы узнать о других ограничениях, касающихся API WebSocket.

Вопрос. Как оплачивается пользование API WebSocket и сервисом Amazon API Gateway?

С вас будет взиматься плата по 2 показателям: минуты подключения и сообщения.

Минуты подключения: общее количество минут, в течение которых клиенты или устройства были подключены к соединению WebSocket (с округлением до минуты).

Сообщения: общее количество сообщений, отправленных подключенным клиентам и полученных от них. Плата за сообщения взимается с шагом 32 КБ. См. на странице цен подробные сведения о ценах на API WebSocket, а также примеры.

Вопрос. Если сообщения в подключении WebSocket не пройдут аутентификацию или авторизацию, будут ли они все равно учтены в моем счете за использование API?

Нет. Если сообщения в подключении WebSocket не пройдут аутентификацию или авторизацию, они не будут учтены в моем счете за использование API.

Подробнее об Amazon API Gateway

Перейти на страницу цен
Готовы начать?
Регистрация
Есть вопросы?
Свяжитесь с нами