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. As regras de roteamento também se aplicam aos URLs usados em um arquivo cron ou em uma configuração da fila de tarefas.

Como implantar o arquivo de expedição

O arquivo dispatch.yaml pode residir em qualquer lugar no diretório do código-fonte.

Para implantar o arquivo de configuração de expedição sem alterar a versão veiculada atualmente, use um dos seguintes comandos no diretório que contém o arquivo de expedição, dependendo do ambiente:

gcloud

gcloud app deploy dispatch.yaml

Maven

mvn appengine:deployDispatch dispatch.yaml

Gradle

gradle appengineDeployDispatch dispatch.yaml

Ambiente de desenvolvimento integrado

Se você usa IntelliJ ou Eclipse, use o formulário de implantação para selecionar os arquivos de configuração individuais a serem implantados.

Para mais informações sobre os comandos de implantação, consulte Como implantar um aplicativo Java 8.

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, defina o padrão de URL, que pode incluir o nome do host e o caminho do URL, não ultrapassando 100 caracteres. Para o elemento service, especifique o nome do serviço que você quer processar todas as solicitações recebidas que correspondem ao padrão de 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.

Um padrão do URL que pode incluir o nome do host e o caminho do URL. Os caracteres glob podem ser usados para corresponder a padrões. Os caracteres Glob só podem ser especificados no início e no final do padrão. Especifique o padrão do URL entre aspas.

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.

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. Por 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:

# 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

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.