API Gateway: Swagger, Caching, Usage Plans, Logging, CORS Flashcards
Как API Gateway интегрируется с OpenAPi?
Какие форматы кода поддерживаются?
- Можно импортировать описание API endpoint’ов в
API Gateway
в видеOpen API
кода. - Можно - наоборот - экспортировать существующие API Gateway endpoint’ы в код.
Форматы Open API кода - Yaml / JSON.
Как можно использовать OpenAPI интерфейс в уже созданном API Gateway?
API Gateway может использовать Open API
код для валидации тела запроса.
Соответствует ли payload описанной API schema’е.
За счёт этой предварительной валидации можно снизить нагрузку на back-end.
В коде Open API schema’ы нужно указать
атрибут x-amazon-apigateway-request-validator
API Gateway поддерживает кэширование запросов.
Какие характеристики есть у этого кэша?
Когда его нужно использовать?
- Cache TTL: От нуля до часа. По-умолчанию 5 минут.
- Cache Size: 0.5GB - 237 GB
API Gateway Cache дорого стоит ($$$). Имеет смысл только для PROD.
Какие способы инвалидации кэша есть в API Gateway?
Что про них нужно знать?
- Полная инвалидация кэша
- Клиенты могут указывать длительность кэша
в заголовке запросаCache-Control: max-age=0
Клиентам нужен соответствующий IAM Policy.
Если дать каждому клиенту возможность инвалидировать кэш, то очень плохо.
Какие есть security features в API Gateway Cache?
- Клиентам нужен IAM Policy для инвалидации кэша
- Кэш можно шифровать encryption
Что такое Usage Plans в API Gateway?
Что можно регулировать в рамках каждого Usage Plan?
Это концепт, благодаря которому мы можем предоставлять свои API Gateway
endpoint’ы нашим клиентам платно за деньги.
В рамках Usage Plan каждому клиенту можно определить
- какой доступ к endpoint’ам и HTTP методам
- частота запросов
- количество запросов в месяц
Зачем нужны API Keys в API Gateway?
Как клиент должен их передавать?
API Key - это просто рандомная строка, у каждого клиента своя.
API Keys используются для идентификации клиентов,
чтобы проверять доступ индивидуально.
Клиенты должны передавать свой API Key в HTTP заголовке x-api-key
В CloudWatch
- Можно логировать ….
- Логирование активируют на уровне …
request / response bodyAPI Gateway Stage
Какие метрики есть для оценки эффективности API Gateway Cache?
Cache Hit Count
Cache Miss Count
Какие метрики есть для оценки Latency API Gateway?
-
Integration Latency
- время, которое берёт back-end на обработку запроса -
Latency
- время, которое берёт back-end +API Gateway
на обработку запроса
Что нужно знать про лимит Latency в API Gateway?
Лимит времени обработки запроса в API Gateway = 29 sec
Если дольше, то будет timeout
Какие виды HTTP ошибок бывают?
-
4XXError
- ошибки на стороне клиента -
5XXError
- ошибки на стороне сервера
Каков лимит API Gateway Throttling?
Что если мы нарушили этот лимит?
Какая у него есть особенность? На что это похоже?
- Account Limit =
10_000
запросов в секунда на ВСЕ endpoint’ы в API Gateway. - “Soft Limit”, т.е. можно увеличить по нашему запросу
Как и с Lambda функциями: один API endpoint может “съесть” весь лимит запросов.
Best Practice
Устанавливать лимит на уровне API Gateway Stage или Method
Какой HTTP код ошибки в случае Тротлинга?
429
Что нужно знать про CORS в контексте API Gateway?
API Gateway - также, как и S3 - может регулировать запросы,
перенаправленные от других Origin’ов.