Ejemplos de cómo API Gateway evalúa las reglas de enrutamiento - Amazon API Gateway

Ejemplos de cómo API Gateway evalúa las reglas de enrutamiento

A continuación se muestran cuatro ejemplos de cómo API Gateway evalúa las reglas de enrutamiento y las asignaciones de API.

Ejemplo 1: solo reglas de enrutamiento

En este ejemplo, el nombre de dominio personalizado https://petstore.example.com tiene el modo de enrutamiento establecido en ROUTING_RULE_ONLY y tiene las siguientes reglas de enrutamiento y prioridades.

ID de regla Priority (Prioridad) Condiciones Acción

abc123

10

Si la solicitud contiene el encabezado Hello:World

API de destino 1

zzz000

50

Si la solicitud contiene los encabezados Accept:image/webp y Pet:Dog-* y si la ruta base contiene PetStoreShopper

API de destino 2

efg456

100

Ninguno

API de destino 3

En la siguiente tabla se muestra cómo API Gateway aplica las reglas de enrutamiento anteriores a las solicitudes de ejemplo.

Solicitud API seleccionada Explicación

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

API de destino 1

La solicitud coincide con la regla de enrutamiento abc123.

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

API de destino 1

API Gateway evalúa todas las reglas de enrutamiento por orden de prioridad. La regla de enrutamiento abc123 tiene la primera prioridad y las condiciones coinciden, por lo que API Gateway invoca la API de destino 1.

Aunque las condiciones de la solicitud también coinciden con la regla de enrutamiento zzz000, API Gateway no evalúa ninguna otra regla de enrutamiento después de establecer una coincidencia.

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

API de destino 2

La solicitud coincide con la regla de enrutamiento zzz000. Esta coincidencia se debe a que la cadena Pet:Dog-Bella coincidía con Pet:Dog-*

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

API de destino 3

La solicitud no coincide con la regla de enrutamiento abc123. La solicitud no coincide con la regla de enrutamiento zzz000 porque no están presentes todos los encabezados requeridos. La siguiente regla de prioridad coincide con todas las solicitudes entrantes, por lo que API Gateway invoca la API de destino 3.

Ejemplo 2: reglas de enrutamiento y asignaciones de API

En este ejemplo, el nombre de dominio personalizado https://petstore.diagram.example.com tiene el modo de enrutamiento establecido en ROUTING_RULE_THEN_API_MAPPING y tiene las siguientes reglas de enrutamiento y asignaciones de API.

ID de regla Priority (Prioridad) Condiciones Acción

abc123

1

Si la base de la solicitud contiene pets

Invoque la etapa Prod de la API PetStore.

000zzz

5

Si la solicitud contiene los encabezados Cookie:*ux=beta* y si la ruta base contiene /refunds

Invoque la etapa Beta de la API Refunds.

En la siguiente tabla se muestran las asignaciones de la API para https://petstore.backup.example.com.

Mapeo de API API seleccionada

/refunds

Invoque la etapa Prod de la API Refunds.

(none)

Invoque la etapa Prod de la API Search.

En el siguiente diagrama se muestra cómo API Gateway aplica las reglas de enrutamiento anteriores a las solicitudes de ejemplo. Las solicitudes de ejemplo se resumen en la tabla que sigue a este diagrama.

Diagrama de cómo API Gateway aplica las reglas de enrutamiento anteriores y las asignaciones de API.

En la siguiente tabal se muestra cómo API Gateway aplica las reglas de enrutamiento anteriores a las solicitudes de ejemplo.

Solicitud API seleccionada Explicación

https://petstore.diagram.com/pets

La etapa Prod de la API PetStore.

La solicitud coincide con la regla de enrutamiento abc123.

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

La etapa Beta de la API Refunds.

La solicitud coincide con la regla de enrutamiento 000zzz. El encabezado Cookie contiene la coincidencia *contains* correcta y la coincidencia de ruta base para esta condición.

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

La etapa Prod de la API Refunds.

La solicitud no tiene los encabezados necesarios para la coincidencia con la regla de enrutamiento zzz000. Si API Gateway no puede hacer coincidir correctamente una regla de enrutamiento, recurre a las asignaciones de API. API Gateway puede asignar la ruta base a la etapa Prod de la API Refunds.

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

La etapa Prod de la API Search.

La solicitud coincide con la asignación de la API a la ruta vacía (none).

Ejemplo 3: reglas de enrutamiento y asignaciones de API con varios niveles

En este ejemplo, el nombre de dominio personalizado https://petstore.backup.example.com tiene el modo de enrutamiento establecido en ROUTING_RULE_THEN_API_MAPPING y tiene las siguientes reglas de enrutamiento y asignaciones de API.

En la siguiente tabla se muestran las reglas de enrutamiento para https://petstore.backup.example.com.

ID de regla Priority (Prioridad) Condiciones Acción

abc123

10

Si la solicitud contiene el encabezado Hello:World

API de destino 1

000zzz

50

Si la solicitud contiene los encabezados Accept:image/webp y Pet:Dog-* y si la ruta base contiene PetStoreShopper

API de destino 2

En la siguiente tabla se muestran las asignaciones de la API para https://petstore.backup.example.com.

Mapeo de API API seleccionada

PetStoreShopper

API de destino 3

PetStoreShopper/cats

API de destino 4

En la siguiente tabal se muestra cómo API Gateway aplica las reglas de enrutamiento anteriores a las solicitudes de ejemplo.

Solicitud API seleccionada Explicación

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

API de destino 3

La solicitud no tiene los encabezados necesarios para la coincidencia con la regla de enrutamiento zzz000. Si API Gateway no puede hacer coincidir correctamente una regla de enrutamiento, recurre a las asignaciones de API. API Gateway puede asignar la ruta base a la API de destino 3.

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

API de destino 1

La solicitud coincide con la regla de enrutamiento abc123. Si el modo de enrutamiento se establece en ROUTING_RULE_THEN_API_MAPPING, las reglas de enrutamiento siempre tienen prioridad sobre las asignaciones de API.

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

Ninguno

La solicitud no coincide con ninguna regla de enrutamiento ni asignación de API. Dado que no hay ninguna regla de enrutamiento predeterminada, API Gateway rechaza la llamada y envía al intermediario un código de estado 403 Forbidden.

Ejemplo 4: reglas de enrutamiento para nombres de dominio comodín

En este ejemplo, el nombre de dominio personalizado https://*.example.com es un nombre de dominio comodín. El comodín admite todos los subdominios que enrutan al mismo dominio. Las siguientes reglas de enrutamiento de ejemplo cambian este comportamiento para permitir que los subdominios enruten a diferentes API de destino mediante el encabezado Host.

En la siguiente tabla se muestran las reglas de enrutamiento para https://*.example.com.

ID de regla Priority (Prioridad) Condiciones Acción

abc123

10

Si la solicitud contiene el encabezado Host:a.example.com

API de destino 1

000zzz

50

Si la solicitud contiene encabezados Host:b.example.com

API de destino 2

efg456

500

Ninguno

API de destino 3

En la siguiente tabla se muestra cómo API Gateway aplica las reglas de enrutamiento anteriores a las solicitudes de ejemplo.

Solicitud API seleccionada Explicación

https://a.example.com

API de destino 1

El encabezado Host es a.example.com. Esta solicitud coincide con la regla de enrutamiento abc123.

https://b.example.com

API de destino 2

El encabezado Host es b.example.com. Esta solicitud coincide con la regla de enrutamiento 000zzz.

https://testing.example.com

API de destino 3

Coincide con la regla de enrutamiento catch-all efg456.