API Gateway: Stages, Canary, Integration Types, Mappings Flashcards
Чтобы изменения в API Gateway были применены,
нужно … на …, например …
выполнить Deployment на конкретный Stage, например DEV, TEST, V1, V2
Каждый API Gateway Stage имеет свой уникальный …
URL
Stage Variables напоминают …
Они используются для …, например … или …
environment variables
часто меняющихся config values
Lambda Function ARN или HTTP Endpoint, на который API Gateway направляет запрос
Что можно делать с Лямбдой через Stage Variables без …?
БЕЗ ИЗМЕНЕНИЙ в API Gateway и коде Лямбды можно
- менять поведение Лямбды через Stage Variables
- выбирать Lambda Alias, на который полетит запрос
Схема Взаимодействия:
Клиент → … → … → …
API Gateway (stage “PROD”) → Lambda Alias (“PROD”) → Lambda Function (version “v1”)
Как API Gateway связан с деплойментом?
Какие сущности API Gateway и Лямбда задействованы в деплойменте?
Canary Deployment можно реализовать через API Gateway.
Это также можно назвать Blue Green deployment.
на каждое окружение выделяется
- API Gateway Stage
- Lambda Alias
- Lambda Function Version
Что такое Integration Types в API Gateway? Что они обозначают?
- Какой back-end находится позади API Gateway: Lambda, AWS service, custom HTTP endpoint
- Может ли API Gateway модифицировать данные запроса-ответа
Какие Integration Types поддерживает API Gateway?
Mock
HTTP / AWS
AWS PROXY
HTTP PROXY
Что имеется ввиду под словом “Прокси” в некоторых типах Integration Types в API Gateway?
Название “AWS Proxy” обозначает, что API Gateway ничего НЕ делает с запросом и ответом.
API Gateway просто “проксирует” запрос в свой back-end.
Как выбрать Integration Type в API Gateway?
1) API Gateway должен менять тело запроса (с использованием mapping template)
- ДА: “HTTP / AWS”
- НЕТ: back-end это Лямбда? “AWS PROXY” : “HTTP PROXY”
Что такое Mapping Template?
- В рамках API Gateway в запросе можно менять
- query string parameters
- body content
- headers
- В ответе можно удалить часть данных
К каким Integration Types относится Mapping Template?
Какой обязательный pre-requisite?
- Это релевантно только для
AWS / HTTP
integration type - Это НЕ релевантно для
PROXY
integration type
Чтобы пользоваться Mapping Template нужно указать в заголовке Content-Type Application/JSON или Application/XML
Какой use-case можно привести для API Gateway Mapping Template?
- SOAP back-end принимает запросы в формате
XML
- RESTful клиент шлёт запросы в формате
JSON
- API Gateway посередине конвертирует данные, используя
mapping template
иHTTP Integration Type