Arquivo de configuração dispatch.yaml

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

O dispatch.yaml permite modificar as regras de roteamento. É possível usar dispatch.yaml para enviar solicitações recebidas para um serviço específico (anteriormente conhecido como módulos) com base no caminho ou nome do host no URL.

Para mais informações, consulte Como as solicitações são roteadas.

Um app pode ter apenas um arquivo dispatch.yaml, e as regras de roteamento nesse arquivo se aplicam a todos os serviços e versões do app.

Como implantar o arquivo de expedição

Para implantar e aplicar as configurações do seu arquivo de expedição ao seu ambiente do App Engine, digite o código a seguir:

gcloud app deploy dispatch.yaml

Sintaxe

O elemento raiz no arquivo dispatch.yaml é dispatch: e contém uma lista de definições de roteamento especificadas pelos subelementos a seguir.

As regras definidas por você no arquivo de expedição precisam usar padrões do URL de HTTP que incluam a notação ".." para separar subdomínios. URLs definidos com a notação "-dot-" do HTTPS não são compatíveis.

As regras de expedição dependem da ordem, e somente a primeira regra correspondente a um URL será aplicada.

Elemento Descrição
service

Especifica o nome do serviço que gerenciará as solicitações que correspondem ao padrão url. Observe que os serviços eram chamados de módulos anteriormente.

url

No elemento url, você define o URL padrão com cotações, que podem incluir o nome do host e o caminho do URL com até 100 caracteres.

Para o elemento service, especifique o nome do serviço que você quer que gerencie todas as solicitações recebidas correspondentes ao padrão do URL do elemento url.

Dica: é possível incluir padrões glob como o caractere curinga * no elemento url. No entanto, esses padrões podem ser usados somente antes do nome do host e no final do caminho do URL.

Os caminhos do URL que começam com /_ah/ não são roteados pelo arquivo de expedição.

Exemplo

Este é um exemplo de arquivo de expedição que encaminha solicitações para https://simple-sample.uc.r.appspot.com, e solicitações como https://simple-sample.uc.r.appspot.com/favicon.ico para o serviço default. Todo o conteúdo estático é disponibilizado a partir do serviço default. As solicitações para dispositivos móveis, como https://simple-sample.uc.r.appspot.com/mobile/, são encaminhadas para um front-end de dispositivos móveis, e as solicitações de worker, como https://simple-sample.uc.r.appspot.com/work/, são roteadas para um back-end estático.

Exemplo:

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.uc.r.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

Se preferir usar as regras gerais de encaminhamento que correspondam a várias solicitações possíveis, defini elas com escopos mais amplos.

Exemplo:

# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.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

Você também pode escrever expressões mais restritivas.

Exemplo:

# 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

É possível criar regras para redirecionar as solicitações de domínio recebidas para um serviço. As regras a seguir encaminham as solicitações recebidas de "customer1.myapp.com" para o serviço padrão e as solicitações recebidas de subdomínios para um serviço de back-end estático.

Exemplo:

# Matches the domain name 'customer1.myapp.com' and directs all the request to default service
- url: "customer1.myapp.com/*"
  service: default

# Matches all the subdomains of 'customer1.myapp.com' and directs all the request to static-backend service
- url: "*.customer1.myapp.com/*"
  service: static-backend

Limites

O arquivo de expedição pode conter até 20 regras de roteamento. Quando você especificar a string do URL, nem o nome do host nem o caminho podem ter mais de 100 caracteres.

Como excluir todas as regras de expedição

Para excluir todas as regras de expedição:

  1. Edite o conteúdo do arquivo dispatch.yaml para:

    dispatch: []
    
  2. Implante o arquivo dispatch.yaml no App Engine.