API Gateway가 라우팅 규칙을 평가하는 방법의 예 - Amazon API Gateway

API Gateway가 라우팅 규칙을 평가하는 방법의 예

다음 섹션에서는 API Gateway가 라우팅 규칙 및 API 매핑을 평가하는 방법의 네 가지 예를 보여줍니다.

예제 1: 라우팅 규칙만

이 예제에서 사용자 지정 도메인 이름 https://petstore.example.com의 라우팅 모드는 ROUTING_RULE_ONLY로 설정되며 다음 라우팅 규칙 및 우선순위를 포함합니다.

규칙 ID 우선순위 조건 작업

abc123

10

요청에 Hello:World 헤더가 포함된 경우

대상 API 1

zzz000

50

요청에 Accept:image/webpPet:Dog-* 헤더가 포함되어 있으며 기본 경로에 PetStoreShopper가 포함된 경우

대상 API 2

efg456

100

없음

대상 API 3

다음 표는 API Gateway가 이전 라우팅 규칙을 예제 요청에 적용하는 방법을 보여줍니다.

요청 선택한 API 설명

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

대상 API 1

요청은 라우팅 규칙 abc123과 일치합니다.

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

대상 API 1

API Gateway는 모든 라우팅 규칙을 우선순위에 따라 평가합니다. 라우팅 규칙 abc123은 우선순위가 가장 높고 조건이 일치하므로 API Gateway는 대상 API 1을 간접적으로 호출합니다.

요청 조건이 라우팅 규칙 zzz000과도 일치하지만 API Gateway는 일치가 완료된 후 다른 라우팅 규칙을 평가하지 않습니다.

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

대상 API 2

요청은 라우팅 규칙 zzz000과 일치합니다. Pet:Dog-BellaPet:Dog-*와 문자열 일치이므로 일치됩니다.

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

대상 API 3

요청이 라우팅 규칙 abc123과 일치하지 않습니다. 필요한 모든 헤더가 존재하지 않으므로 요청이 라우팅 규칙 zzz000과 일치하지 않습니다. 다음 우선순위 규칙은 모든 수신 요청과 일치하므로 API Gateway는 대상 API 3을 간접적으로 호출합니다.

예제 2: 라우팅 규칙 및 API 매핑

이 예제에서 사용자 지정 도메인 이름 https://petstore.diagram.example.com의 라우팅 모드는 ROUTING_RULE_THEN_API_MAPPING로 설정되며 다음 라우팅 규칙 및 API 매핑을 포함합니다.

규칙 ID 우선순위 조건 작업

abc123

1

요청에 pets 헤더가 포함된 경우

PetStore API의 Prod 스테이지를 간접적으로 호출합니다.

000zzz

5

요청에 Cookie*ux=beta* 헤더가 포함되어 있으며 기본 경로에 /refunds가 포함된 경우

Refunds API의 Beta 스테이지를 간접적으로 호출합니다.

다음 표에는 https://petstore.backup.example.com에 대한 API 매핑이 나와 있습니다.

API 매핑 선택한 API

/refunds

Refunds API의 Prod 스테이지를 간접적으로 호출합니다.

(none)

Search API의 Prod 스테이지를 간접적으로 호출합니다.

다음 다이어그램은 API Gateway가 이전 라우팅 규칙 및 API 매핑을 예제 요청에 적용하는 방법을 보여줍니다. 예제 요청은 이 다이어그램 뒤의 표에 요약되어 있습니다.

API Gateway가 이전 라우팅 규칙 및 API 매핑을 적용하는 방법을 보여주는 다이어그램입니다.

다음 표는 API Gateway가 이전 라우팅 규칙 및 API 매핑을 예제 요청에 적용하는 방법을 보여줍니다.

요청 선택한 API 설명

https://petstore.diagram.com/pets

PetStore API 스테이지의 Prod 이름입니다.

요청은 라우팅 규칙 abc123과 일치합니다.

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

Refunds API 스테이지의 Beta 이름입니다.

요청은 라우팅 규칙 000zzz과 일치합니다. Cookie 헤더에는 이 조건에 대한 올바른 *contains* 일치 및 기본 경로 일치가 포함됩니다.

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

Refunds API 스테이지의 Prod 이름입니다.

요청에 라우팅 규칙 zzz000과 일치하는 데 필요한 헤더가 없습니다. API Gateway가 라우팅 규칙과 성공적으로 일치되지 않는 경우 API 매핑으로 대체됩니다. API Gateway는 기본 경로를 Refunds API의 Prod 스테이지에 매핑할 수 있습니다.

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

Search API 스테이지의 Prod 이름입니다.

요청은 API 매핑을 빈 경로 (none)과 일치시킵니다.

예제 3: 여러 수준의 라우팅 규칙 및 API 매핑

이 예제에서 사용자 지정 도메인 이름 https://petstore.backup.example.com의 라우팅 모드는 ROUTING_RULE_THEN_API_MAPPING로 설정되며 다음 라우팅 규칙 및 API 매핑을 포함합니다.

다음 표에는 https://petstore.backup.example.com에 대한 라우팅 규칙이 나와 있습니다.

규칙 ID 우선순위 조건 작업

abc123

10

요청에 Hello:World 헤더가 포함된 경우

대상 API 1

000zzz

50

요청에 Accept, image/webpPet:Dog-* 헤더가 포함되어 있으며 기본 경로에 PetStoreShopper가 포함된 경우

대상 API 2

다음 표에는 https://petstore.backup.example.com에 대한 API 매핑이 나와 있습니다.

API 매핑 선택한 API

PetStoreShopper

대상 API 3

PetStoreShopper/cats

대상 API 4

다음 표는 API Gateway가 이전 라우팅 규칙 및 API 매핑을 예제 요청에 적용하는 방법을 보여줍니다.

요청 선택한 API 설명

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

대상 API 3

요청에 라우팅 규칙 zzz000과 일치하는 데 필요한 헤더가 없습니다. API Gateway가 라우팅 규칙과 성공적으로 일치되지 않는 경우 API 매핑으로 대체됩니다. API Gateway는 기본 경로를 대상 API 3에 매핑할 수 있습니다.

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

대상 API 1

요청은 라우팅 규칙 abc123과 일치합니다. 라우팅 모드가 ROUTING_RULE_THEN_API_MAPPING으로 설정된 경우 라우팅 규칙은 항상 API 매핑보다 우선 적용됩니다.

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

없음

요청이 라우팅 규칙 또는 API 매핑과 일치하지 않습니다. 기본 라우팅 규칙이 없으므로 API Gateway는 호출을 거부하고 호출자에게 403 Forbidden 상태 코드를 보냅니다.

예제 4: 와일드카드 도메인 이름에 대한 라우팅 규칙

이 예제에서 사용자 지정 도메인 이름 https://*.example.com은 와일드카드 도메인 이름입니다. 와일드카드는 동일한 도메인으로 다시 라우팅되는 모든 하위 도메인을 지원합니다. 다음 예제 라우팅 규칙은 하위 도메인이 Host 헤더를 사용하여 다른 대상 API로 라우팅할 수 있도록 이 동작을 변경합니다.

다음 표에는 https://*.example.com에 대한 라우팅 규칙이 나와 있습니다.

규칙 ID 우선순위 조건 작업

abc123

10

요청에 Host:a.example.com 헤더가 포함된 경우

대상 API 1

000zzz

50

요청에 Host:b.example.com 헤더가 포함된 경우

대상 API 2

efg456

500

없음

대상 API 3

다음 표는 API Gateway가 이전 라우팅 규칙을 예제 요청에 적용하는 방법을 보여줍니다.

요청 선택한 API 설명

https://a.example.com

대상 API 1

Host 헤더는 a.example.com입니다. 이 요청은 라우팅 규칙 abc123과 일치합니다.

https://b.example.com

대상 API 2

Host 헤더는 b.example.com입니다. 이 요청은 라우팅 규칙 000zzz과 일치합니다.

https://testing.example.com

대상 API 3

이는 catch-all 라우팅 규칙 efg456과 일치합니다.