Ficheiro de configuração dispatch.yaml

ID da região

O REGION_ID é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após fevereiro de 2020, REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criadas antes desta data, o ID da região é opcional no URL.

Saiba mais acerca dos IDs de regiões.

O elemento dispatch.yaml permite substituir as regras de encaminhamento. Pode usar o dispatch.yaml para enviar pedidos recebidos para um serviço específico (anteriormente conhecido como módulos) com base no caminho ou no nome de anfitrião no URL.

Para mais informações, consulte o artigo Como os pedidos são encaminhados.

Uma app só pode ter um ficheiro dispatch.yaml, e as regras de encaminhamento nesse ficheiro aplicam-se a todos os serviços e versões da app.

Implementar o ficheiro de envio

Para implementar e aplicar as definições de configuração do ficheiro de expedição ao seu ambiente do App Engine:

gcloud app deploy dispatch.yaml

Sintaxe

O elemento raiz no ficheiro dispatch.yaml é dispatch: e contém uma lista de definições de encaminhamento especificadas pelos seguintes subelementos.

As regras que define no ficheiro de expedição têm de usar padrões de URL HTTP que incluam a notação "." para separar subdomínios. Os URLs definidos com a notação "-dot-" HTTPS não são suportados.

As regras de envio dependem da ordem e apenas a primeira regra que corresponda a um URL é aplicada.

Elemento Descrição
service

Especifica o nome do serviço que vai processar os pedidos que correspondem ao padrão url. Tenha em atenção que os serviços eram anteriormente denominados módulos.

url

No elemento url, define o padrão de URLentre aspas,que pode incluir o nome do anfitrião e o caminho do URL com um comprimento máximo de 100 carateres.

Para o elemento service, especifica o nome do serviço que quer que processe todos os pedidos recebidos que correspondam ao padrão de URL do elemento url.

Dica: pode incluir padrões globais, como o caráter universal *, no elemento url. No entanto, esses padrões só podem ser usados antes do nome do anfitrião e no final do caminho do URL.

Os caminhos de URL que começam por /_ah/ não são encaminhados pelo ficheiro de envio.

Exemplo

Segue-se um ficheiro de expedição de exemplo que encaminha pedidos para https://simple-sample.uc.r.appspot.com e pedidos como https://simple-sample.uc.r.appspot.com/favicon.ico para o serviço default. Todo o conteúdo estático é fornecido a partir do serviço default. Os pedidos de dispositivos móveis, como https://simple-sample.uc.r.appspot.com/mobile/, são encaminhados para um frontend de dispositivos móveis e os pedidos de trabalhadores, como https://simple-sample.uc.r.appspot.com/work/, são encaminhados para um backend 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 regras de encaminhamento gerais que correspondam a muitos pedidos possíveis, pode definir regras com âmbitos 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

Também pode escrever expressões mais rigorosas.

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

Pode criar regras para redirecionar os pedidos de domínio recebidos para um serviço. As seguintes regras encaminham os pedidos recebidos de "customer1.myapp.com" para o serviço predefinido e os pedidos recebidos 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 ficheiro de expedição pode conter até 20 regras de encaminhamento. Quando especificar a string do URL, nem o nome do anfitrião nem o caminho podem ter mais de 100 carateres.

A eliminar todas as regras de envio

Para eliminar todas as regras de envio:

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

    dispatch: []
    
  2. Implemente o ficheiro dispatch.yaml no App Engine.