- Сети и доставка контента›
- API шлюз Amazon›
- Вопросы и ответы
Вопросы и ответы по Amazon API Gateway
Общие вопросы
Что такое API шлюз Amazon?
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.
Для чего используют сервис API шлюз Amazon?
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 поддерживает сервис API шлюз Amazon?
Amazon API Gateway предлагает два варианта создания интерфейсов API RESTful – API HTTP и API REST, а также один вариант создания API WebSocket.
API HTTP. Интерфейсы API HTTP оптимизированы для создания API, которые передают функции AWS Lambda или серверные части HTTP, что делает их идеальными для обработки бессерверных рабочих нагрузок. В настоящее время они не предоставляют функции управления API.
Обработка запросов на основе передачи состояния. Интерфейсы Обработки запросов на основе передачи состояния предлагают функции прокси‑сервера для API и возможности управления в составе одного решения. API REST предоставляют функции управления API, такие как планы использования, ключи API, публикации и API для монетизации.
API веб-сокетов. Интерфейсы API веб-сокетов поддерживают постоянное соединение между подключенными клиентами, обеспечивая возможность обмена сообщениями в режиме реального времени. С помощью API WebSocket в API Gateway можно определить серверные интеграции с функциями AWS Lambda, Amazon Kinesis или любым адресом HTTP, которые будут вызываться при получении сообщений от подключенных клиентов.
Как начать работу с API HTTP в сервисе API шлюз Amazon?
Чтобы начать работу с интерфейсами 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 идеально подходят для следующих случаев.
- Создание прокси‑интерфейсов API для AWS Lambda или любого адреса HTTP.
- Создание современных API с авторизацией OAuth 2 и OIDC.
- Рабочие нагрузки, которые могут очень сильно вырасти.
- API для чувствительных к задержкам рабочих нагрузок.
- Клиенты хотят заплатить фиксированную цену и получить полный набор функций, необходимых для создания и публикации своих API, а также управления ими.
Какие возможности входят в стандартный пакет API HTTP из сервиса API шлюз Amazon?
Стандартный пакет интерфейсов API HTTP включает поддержку CORS, OIDC и OAuth2 для аутентификации и авторизации, а также автоматическое развертывание на этапах.
Можно ли импортировать определение OpenAPI для создания интерфейса API HTTP?
Да, вы можете импортировать определение API с помощью OpenAPI 3. Это приведет к созданию маршрутов, интеграций и моделей API. Подробнее об импорте определений OpenAPI см. в документации.
Как перейти от текущей Обработки запросов на основе передачи состояния к API HTTP?
Для перехода от текущего интерфейса API REST к API HTTP в Amazon API Gateway выполните следующие действия.
- Убедитесь, что все необходимые вам функции доступны в HTTP. Полный список функций см. в документации.
- Перейдите к API REST и экспортируйте из него определение OpenAPI.
- Перейдите к API HTTP и импортируйте определение OpenAPI из предыдущего действия.
- Проверьте работу функций API.
- Обновите клиенты, указав новый URL.
Несмотря на нормальную работу API вы можете заметить, что некоторые функции отсутствуют. Для определения недостающих функций просмотрите поля Info (Информация), Warning (Предупреждение) и Error (Ошибка) в операции импорта. Подробнее о переходе с API REST на API HTTP см. в документации.
Как узнать, будет ли моя текущая Обработка запросов на основе передачи состояния работать как API HTTP?
Во‑первых, перейдите к вашему API REST и экспортируйте из него определение OpenAPI. Затем перейдите к API HTTP и импортируйте определение OpenAPI из предыдущего действия. Несмотря на нормальную работу API вы можете заметить, что некоторые функции отсутствуют. Для определения недостающих функций просмотрите поля Info (Информация), Warning (Предупреждение) и Error (Ошибка) в операции импорта. Интерфейс командной строки AWS вернет информацию о вашем API в полях Info (Информация) и Warning (Предупреждение). Дополнительную информацию см. в документации.
Как начать работу с API веб-сокетами в сервисе API шлюз Amazon?
Сначала нужно создать 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 для работы под другим доменным именем, вы можете предоставить для домена собственный сертификат.
Какие типы данных можно использовать в сервисе API шлюз Amazon?
API, созданные с помощью Amazon API Gateway, могут принимать любые полезные данные, переданные по HTTPS для API HTTP, API REST и API WebSocket. Как правило, используются форматы параметров строки запроса, заголовков запроса, JSON или XML. Вы можете назначить в качестве ответов на вызовы API контент любого типа, а затем с помощью шаблонов трансформации преобразовывать ответы сервера в нужный формат.
С какими серверными системами может взаимодействовать сервис API шлюз Amazon?
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.
Для каких клиентских платформ сервиса API шлюз Amazon можно генерировать пакеты 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 доступен сервис API шлюз Amazon?
Просмотреть доступность API HTTP, Обработки запросов на основе передачи состояния, API веб-сокетов можно в таблице Регионов AWS здесь.
Какие действия можно выполнять на консоли сервиса API шлюз Amazon?
В консоли 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 в сервисе API шлюз Amazon?
Каждый 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 Swagger?
Да. Можно использовать наш инструмент импорта с открытым исходным кодом Swagger importer для импорта ваших определений API Swagger в сервис Amazon API Gateway. С помощью инструмента импорта Swagger importer можно создавать и развертывать новые API, а также обновлять существующие.
Как можно монетизировать собственные API в сервисе API шлюз Amazon?
Вы можете монетизировать свои API в API Gateway, разместив их в качестве продуктов на AWS Marketplace. Для этого сначала необходимо зарегистрироваться в качестве продавца на AWS Marketplace, а затем предоставить свои планы использования API как продуктов для сервиса API Gateway. Здесь можно узнать подробнее о монетизации API.
Как избежать создания лишних копий сообщений об ошибках и других разделов документации, часто повторяющихся в моем 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 для поддержки выбранной стратегии авторизации токенов на предъявителя.
Как работает Подпись версии 4 AWS?
Можно использовать данные для доступа 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 часа.
Может ли сервис API шлюз Amazon генерировать ключи 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 шлюз Amazon?
Да. Сервис Amazon API Gateway может генерировать используемые на стороне клиента сертификаты SSL с предоставлением вам доступа к публичным ключам этих сертификатов. Вызовы сервера могут выполняться с помощью сгенерированных сертификатов, и вы можете выполнять проверку вызовов, исходящих от Amazon API Gateway, используя публичный ключ сертификата.
Можно ли использовать сервис AWS CloudTrail вместе с сервисом API шлюз Amazon?
Да. Сервис API шлюз Amazon интегрирован с сервисом AWS CloudTrail, что позволяет получить полную, доступную для анализа историю изменений ваших Обработок запросов на основе передачи состояния. Все вызовы API, сделанные к API сервиса Amazon API Gateway для создания, изменения, удаления или развертывания API REST, регистрируются в логах CloudTrail в вашем аккаунте AWS.
Как сервис API шлюз Amazon работает с 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 с помощью сервиса API шлюз Amazon?
Сервис Amazon API Gateway регистрирует данные о вызовах, задержке и коэффициенте ошибок API в логах сервиса Amazon CloudWatch в вашем аккаунте AWS. Метрики также доступны в панели управления API REST консоли Amazon API Gateway. API Gateway также измеряет использование сторонними разработчиками, данные доступны в консоли API Gateway и посредством API.
Можно ли настроить предупреждения для метрик сервиса API шлюз Amazon?
Да, сервис Amazon API Gateway отправляет в Amazon CloudWatch данные логов и метрики. Вы можете настроить пользовательские предупреждения с помощью консоли Amazon CloudWatch.
Можно ли определить, какую версию API применяют пользователи?
Да. В метриках содержится информация о версиях API REST и стадиях их развертывания. Кроме того, вы можете включить метрики для любого метода, используемого вашим API REST.
Предусмотрено ли в сервисе API шлюз Amazon ведение журналов?
Да. Сервис 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, поддерживая тем самым производительность и доступность серверных сервисов.
На каких уровнях сервис API шлюз Amazon может ограничивать входящий трафик API?
Регулирующие ограничения можно задавать на уровне методов. Вы можете отредактировать значения регулирующих ограничений в настройках метода с помощью API или консоли сервиса Amazon API Gateway.
Как применяются правила ограничений?
Параметры шлюза API, которые относятся к ограничению, применяются в следующем порядке: 1) ограничения для каждого метода для каждого клиента, которые устанавливаются для этапа API в плане эксплуатации; 2) ограничения для каждого клиента, которые устанавливаются в плане эксплуатации; 3) ограничения для каждого метода по умолчанию и индивидуальные ограничения для каждого метода, которые устанавливаются в настройках этапа API; 4) ограничения для каждого региона на уровне аккаунта.
Позволяет ли сервис API шлюз Amazon кэшировать результаты вызовов 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 не настроено регулирование и кэширование, то все запросы передаются серверным процессам.
Оплата
Как оплачивается пользование сервисом API шлюз Amazon?
Используя Amazon API Gateway, нужно платить за миллион вызовов API плюс стоимость исходящего трафика (за гигабайт). При выделении кэша для API действует почасовой тариф. Для API WebSocket сервис API Gateway выставляет счета, основанные на отправленных и полученных сообщениях, а также количестве минут, в течение которых клиент был подключен к API. Подробные сведения о стоимости вызовов API, передачи данных и кэширования для каждого Региона AWS см. на странице цен на API шлюз Amazon.
Кто оплачивает вызовы API сервиса API шлюз Amazon, выполненные сторонними разработчиками?
Вызовы API в рамках сервиса API Gateway оплачивает владелец API.
Если ответ API выдан из кэша, оплачивается ли он как обычный вызов API?
Да. Плата за вызовы API начисляется одинаково, независимо от того, обслуживается ли ответ вашим серверным процессом или выдается из кэша Amazon API Gateway.
API WebSocket
Каков маршрут веб-сокетов в сервисе API шлюз Amazon?
Маршрут WebSocket в Amazon API Gateway используется для правильной маршрутизации сообщений к конкретной интеграции. Вы указываете ключ маршрута и сервер интеграции для вызова при определении API WebSocket. Ключ маршрута – это атрибут в теле сообщения. Можно также задать интеграцию по умолчанию для ключей маршрута без соответствия. Подробнее маршрутизация описана в документации.
Как отправлять сообщения подключенным клиентам из серверного сервиса?
Когда новый клиент подключается к API WebSocket, для этого клиента создается уникальный URL-адрес, который называется URL-адресом обратного вызова. Этот URL-адрес обратного вызова можно использовать для отправки сообщений клиенту из серверного сервиса.
Как я могу разрешить доступ к API веб-сокетам в сервисе API шлюз Amazon?
В Amazon API Gateway вы можете использовать роли и политики IAM или средства авторизации AWS Lambda для разрешения доступа к API WebSocket.
Каким образом мой внутренний сервис может определить, подключен ли еще клиент к соединению веб-сокетов?
Можно применить метод URL GET к подключению, чтобы определить, подключен ли клиент к соединению WebSocket. См. документацию об использовании URL-адреса обратного вызова.
Каков максимальный размер сообщения, поддерживаемый для API веб-сокетов?
Максимальный поддерживаемый размер сообщения составляет 128 КБ. См. документацию, чтобы узнать о других ограничениях, касающихся API WebSocket.
Как оплачивается пользование API веб-сокетами и сервисом API шлюз Amazon?
С вас будет взиматься плата по 2 показателям: минуты подключения и сообщения.
Минуты подключения: общее количество минут, в течение которых клиенты или устройства были подключены к соединению веб-сокетов (с округлением до минуты).
Сообщения: общее количество сообщений, отправленных подключенным клиентам и полученных от них. Плата за сообщения взимается с шагом 32 КБ. См. на странице цен подробные сведения о ценах на API WebSocket, а также примеры.
Если сообщения в подключении веб-сокетов не пройдут аутентификацию или авторизацию, будут ли они все равно учтены в моем счете за использование API?
Нет. Если сообщения в подключении WebSocket не пройдут аутентификацию или авторизацию, они не будут учтены в моем счете за использование API.