Exemplos de como o API Gateway avalia regras de roteamento - Amazon API Gateway

Exemplos de como o API Gateway avalia regras de roteamento

A seção a seguir mostra quatro exemplos de como o API Gateway avalia regras de roteamento e mapeamentos de API.

Exemplo 1: somente regras de roteamento

Neste exemplo, o nome de domínio personalizado https://petstore.example.com tem o modo de roteamento definido como ROUTING_RULE_ONLY e as regras e prioridades de roteamento a seguir.

ID da regra Prioridade Condições Ação

abc123

10

Se a solicitação contiver cabeçalho: Hello:World

API de destino 1

zzz000

50

Se a solicitação contiver cabeçalhos Accept:image/webp e Pet:Dog-* e se o caminho base contiver PetStoreShopper

API de destino 2

efg456

100

Nenhum

API de destino 3

A tabela a seguir mostra como o API Gateway aplica as regras de roteamento anteriores a solicitações de exemplo.

Solicitação API selecionada Explicação

https://petstore.example.com -h "Hello:World"

API de destino 1

As solicitações correspondem à regra de roteamento abc123.

https://petstore.example.com/PetStoreShopper -h "Hello:World", "Pet:Dog-Bella", "Accept:image/webp"

API de destino 1

O API Gateway avalia todas as regras de roteamento em ordem de prioridade. A regra de roteamento abc123 é a primeira em prioridade e as condições correspondem, então o API Gateway invoca a API de destino 1.

Embora as condições da solicitação também correspondam à regra de roteamento zzz000, o API Gateway não avalia nenhuma outra regra de roteamento depois que encontra uma correspondência.

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella", "Accept:image/webp"

API de destino 2

As solicitações correspondem à regra de roteamento zzz000. Houve correspondência porque Pet:Dog-Bella era uma string compatível com Pet:Dog-*.

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella"

API de destino 3

A solicitação não corresponde à regra de roteamento abc123. A solicitação não corresponde à regra de roteamento zzz000 porque todos os cabeçalhos necessários não estão presentes. A próxima regra prioritária corresponde a todas as solicitações recebidas, então o API Gateway invoca a API de destino 3.

Exemplo 2: regras de roteamento e mapeamentos de API

Neste exemplo, o nome de domínio personalizado https://petstore.diagram.example.com tem o modo de roteamento definido como ROUTING_RULE_THEN_API_MAPPING e as regras de roteamento e mapeamentos de API a seguir.

ID da regra Prioridade Condições Ação

abc123

1

Se a solicitação contiver pets

Invoque o estágio Prod da API PetStore.

000zzz

5

Se a solicitação contiver cabeçalhos Cookie e *ux=beta* e se o caminho base contiver /refunds

Invoque o estágio Beta da API Refunds.

A tabela a seguir mostra mapeamentos de API para https://petstore.backup.example.com.

Mapeamento de API API selecionada

/refunds

Invoque o estágio Prod da API Refunds.

(none)

Invoque o estágio Prod da API Search.

O diagrama a seguir mostra como o API Gateway aplica as regras de roteamento e os mapeamentos de API anteriores a solicitações de exemplo. As solicitações de exemplo estão resumidas na tabela após esse diagrama.

Diagrama de como o API Gateway aplica as regras de roteamento e os mapeamentos de API anteriores.

A tabela a seguir mostra como o API Gateway aplica as regras de roteamento e os mapeamentos de API anteriores a solicitações de exemplo.

Solicitação API selecionada Explicação

https://petstore.diagram.com/pets

O estágio Prod da API PetStore.

A solicitação corresponde à regra de roteamento abc123.

https://petstore.diagram.example.com/refunds -h "Cookie:lang=en-us;ux=beta"

O estágio Beta da API Refunds.

A solicitação corresponde à regra de roteamento 000zzz. O cabeçalho Cookie contém a correspondência *contains* correta e a correspondência do caminho base para essa condição.

https://petstore.diagram.example.com/refunds

O estágio Prod da API Refunds.

A solicitação não tem os cabeçalhos necessários para fazer a correspondência com a regra de roteamento zzz000. Se o API Gateway não conseguir fazer a correspondência com uma regra de roteamento, ele retornará aos mapeamentos de API. O API Gateway pode associar o caminho base ao estágio Prod da API Refunds.

https://petstore.diagram.example.com/

O estágio Prod da API Search.

A solicitação faz a correspondência entre o mapeamento de API e o caminho vazio (none).

Exemplo 3: regras de roteamento e mapeamentos de API com vários níveis

Neste exemplo, o nome de domínio personalizado https://petstore.backup.example.com tem o modo de roteamento definido como ROUTING_RULE_THEN_API_MAPPING e as regras de roteamento e mapeamentos de API a seguir.

A tabela a seguir mostra regras de roteamento para https://petstore.backup.example.com.

ID da regra Prioridade Condições Ação

abc123

10

Se a solicitação contiver cabeçalho: Hello:World

API de destino 1

000zzz

50

Se a solicitação contiver cabeçalhos Accept:image/webp e Pet:Dog-* e se o caminho base contiver PetStoreShopper

API de destino 2

A tabela a seguir mostra mapeamentos de API para https://petstore.backup.example.com.

Mapeamento de API API selecionada

PetStoreShopper

API de destino 3

PetStoreShopper/cats

API de destino 4

A tabela a seguir mostra como o API Gateway aplica as regras de roteamento e os mapeamentos de API anteriores a solicitações de exemplo.

Solicitação API selecionada Explicação

https://petstore.example.com/PetStoreShopper -h "Accept:image/webp", "Pet:Cats"

API de destino 3

A solicitação não tem os cabeçalhos necessários para fazer a correspondência com a regra de roteamento zzz000. Se o API Gateway não conseguir fazer a correspondência com uma regra de roteamento, ele retornará aos mapeamentos de API. O API Gateway pode associar o caminho base à API de destino 3.

https://petstore.example.com/PetStoreShopper/cats -h "Hello:World"

API de destino 1

A solicitação corresponde à regra de roteamento abc123. Se o modo de roteamento estiver definido como ROUTING_RULE_THEN_API_MAPPING, as regras de roteamento sempre terão prioridade sobre os mapeamentos de API.

https://petstore.example.com/Admin -h "Pet:Dog-Bella"

Nenhum

A solicitação não corresponde a nenhuma regra de roteamento ou mapeamento de API. Como não há uma regra de roteamento padrão, o API Gateway rejeita a chamada e envia um código de status 403 Forbidden ao autor da chamada.

Exemplo 4: regras de roteamento para nomes de domínio curinga

Neste exemplo, o nome de domínio personalizado https://*.example.com é um nome de domínio curinga. O curinga aceita todos os subdomínios que são roteados de volta para o mesmo domínio. Os exemplos de regra de roteamento a seguir alteram esse comportamento para permitir que subdomínios sejam roteados para diferentes APIs de destino usando o cabeçalho Host.

A tabela a seguir mostra regras de roteamento para https://*.example.com.

ID da regra Prioridade Condições Ação

abc123

10

Se a solicitação contiver cabeçalho: Host:a.example.com

API de destino 1

000zzz

50

Se a solicitação contiver cabeçalho: Host:b.example.com

API de destino 2

efg456

500

Nenhum

API de destino 3

A tabela a seguir mostra como o API Gateway aplica as regras de roteamento anteriores a solicitações de exemplo.

Solicitação API selecionada Explicação

https://a.example.com

API de destino 1

O cabeçalho Host é a.example.com. Essa solicitação corresponde à regra de roteamento abc123.

https://b.example.com

API de destino 2

O cabeçalho Host é b.example.com. Essa solicitação corresponde à regra de roteamento 000zzz.

https://testing.example.com

API de destino 3

Isso corresponde à regra de roteamento abrangente efg456.