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.

Como implantar o arquivo de expedição

O arquivo dispatch.yaml precisa residir no mesmo diretório que o código-fonte do Go.

Antes de fazer a implantação do arquivo de expedição, verifique se todos os serviços definidos nesse arquivo já foram implantados no App Engine. Para implantar o arquivo dispatch.yaml, execute o comando gcloud app deploy no diretório que contém o dispatch.yaml:

gcloud app deploy dispatch.yaml
Para mais informações sobre os comandos de implantação, consulte Como implantar um aplicativo Go 1.11.

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 do URL entre aspas, que pode 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.

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. Esses caracteres só podem ser especificados no início e no final do padrão.

Os caminhos de URL que começam com /_ah/ não são encaminhados 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.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.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

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.