dispatch.yaml 구성 파일

dispatch.yaml을 사용하면 라우팅 규칙을 재정의할 수 있습니다. dispatch.yaml을 사용해 수신 요청을 URL의 경로 또는 호스트 이름을 기반으로 특정 서비스(이전의 모듈)에 전송할 수 있습니다.

자세한 내용은 요청 라우팅 방법을 참조하세요.

디스패치 파일 배포

디스패치 파일에서 App Engine 환경으로 구성 설정을 배포하고 적용하려면 다음 명령어를 입력하세요.

gcloud app deploy dispatch.yaml

구문

dispatch.yaml 파일의 루트 요소는 dispatch:이며 다음 하위 요소로 지정된 라우팅 정의 목록을 포함합니다.

디스패치 파일에서 정의하는 규칙은 하위 도메인을 구분할 때 '.' 표기법이 포함된 HTTP URL 패턴을 사용해야 합니다. HTTPS '-dot-' 표기법으로 정의된 URL은 지원되지 않습니다.

디스패치 규칙은 순서를 따르며 cron 파일에 정의한 URL에도 적용할 수 있습니다.

요소 설명
service

url 패턴과 일치하는 요청을 처리할 서비스의 이름을 지정합니다. 서비스의 이전 명칭은 모듈입니다.

url

'url' 요소에 URL 패턴을 따옴표로 묶어 정의합니다. URL 패턴은 100자 미만(영문 기준)의 호스트 이름과 URL 경로를 포함할 수 있습니다. `service` 요소로는 `url` 요소의 URL 패턴과 일치하는 수신 요청을 처리할 서비스의 이름을 지정합니다.

팁: `url` 요소에 `*` 와일드 카드 문자 등의 glob 패턴을 포함할 수는 있지만 이러한 패턴은 호스트 이름 앞과 URL 경로의 끝에만 사용할 수 있습니다.

호스트 이름과 URL 경로를 포함할 수 있는 URL 패턴입니다. Glob 문자를 패턴 일치에 사용할 수 있습니다. Glob 문자는 패턴의 시작 및 끝 부분에만 지정할 수 있습니다.

/_ah/로 시작하는 URL 경로는 디스패치 파일로 라우팅되지 않습니다.

다음은 http://simple-sample.appspot.com에 대한 요청과 default 서비스에 대한 http://simple-sample.appspot.com/favicon.ico 등의 요청을 라우팅하는 샘플 디스패치 파일입니다. 모든 정적 콘텐츠는 default 서비스에서 제공됩니다. http://simple-sample.appspot.com/mobile/과 같은 모바일 요청은 모바일 프런트엔드로 라우팅되고 http://simple-sample.appspot.com/work/ 등의 작업자 요청은 정적 백엔드로 라우팅됩니다.

dispatch:
  # Default service serves the typical web resources and all static resources.
  - url: "*/favicon.ico"
    service: default

  # Default service serves simple hostname request.
  - url: "simple-sample.appspot.com/"
    service: default

  # Send all mobile traffic to the mobile frontend.
  - url: "*/mobile/*"
    service: mobile-frontend

  # Send all work to the one static backend.
  - url: "*/work/*"
    service: static-backend

가능한 많은 요청과 일치하는 일반적인 라우팅 규칙을 선호한다면 보다 광범위한 규칙을 정의하면 됩니다. 예를 들면 다음과 같습니다.

# Send any path that begins with “simple-sample.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.appspot.com/mobile*"
  service: mobile-frontend

# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
  service: static-backend

보다 엄격한 표현식을 작성할 수도 있습니다.

# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
  service: mobile-frontend

# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
  service: static-backend

한도

디스패치 파일에는 최대 20개의 라우팅 규칙을 포함할 수 있습니다. URL 문자열을 지정할 때 호스트 이름 및 경로가 100자를 초과하면 안 됩니다.

모든 디스패치 규칙 삭제

모든 디스패치 규칙을 삭제하는 방법은 다음과 같습니다.

  1. dispatch.yaml 파일의 콘텐츠를 다음과 같이 수정합니다.

    dispatch:
    

  2. dispatch.yaml 파일을 App Engine에 배포합니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

.NET용 App Engine 가변형 환경 문서