Arquivo de configuração dispatch.yaml

Com o dispatch.yaml, é possível modificar as regras de encaminhamento. Você pode usar o arquivo dispatch.yaml para enviar solicitações de entrada para um serviço específico (anteriormente conhecido como módulo) com base no caminho ou nome do host no URL.

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

Como implantar o arquivo de expedição

O arquivo dispatch.yaml precisa residir no diretório root ou no diretório que define o serviço padrão.

Para implantar o arquivo dispatch.yaml, use o comando a seguir. 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.

gcloud

Execute o comando gcloud app deploy no diretório que contém o dispatch.yaml:

gcloud app deploy dispatch.yaml

appcfg

Execute o comando appcfg update_dispatch no diretório que contém o arquivo dispatch.yaml e use a opção -A para especificar o código do projeto do GCP:

appcfg.py -A [YOUR_PROJECT_ID] update_dispatch .

O arquivo dispatch.yaml também é implantado quando você atualiza um serviço com o comando appcfg.py update.

Para mais informações sobre os comandos de implantação, consulte Como implantar um app do Python.

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 de URL HTTP que incluam a notação "." para separar subdomínios. Os URLs definidos com a notação HTTPS "-dot-" não são compatíveis.

As regras de expedição dependem da ordem e também podem se aplicar aos URLs definidos no arquivo cron.

Elemento Descrição
service

Especifica o nome do serviço que processará as solicitações correspondentes ao padrão url. Antes, os serviços eram chamados de módulos.

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 processe 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 de 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.

As regras de expedição também se aplicam aos URLs usados na configuração cron ou na configuração da fila de tarefas.

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

Exemplo

Veja a seguir uma amostra de um arquivo de expedição que roteia solicitações para http://simple-sample.appspot.com e solicitações como http://simple-sample.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 http://simple-sample.appspot.com/mobile/, são roteadas para um front-end de dispositivos móveis. As solicitações de workers, como http://simple-sample.appspot.com/work/, são roteadas para um backend 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 você preferir usar as regras gerais de roteamento que correspondam a várias solicitações possíveis, defina essas regras 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, siga estas etapas:

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

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

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2