Konfigurationsdatei dispatch.yaml

Regions-ID

REGION_ID ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.

Hier finden Sie weitere Informationen zu Regions-IDs.

Mit dispatch.yaml können Sie Weiterleitungsregeln überschreiben. Sie können dispatch.yaml verwenden, um eingehende Anfragen basierend auf dem Pfad oder Hostnamen in der URL an einen bestimmten Dienst (ehemals Module) zu senden.

Weitere Informationen finden Sie unter Anfragenrouting.

Eine Anwendung kann nur eine dispatch.yaml-Datei haben und die Routingregeln in dieser Datei gelten für alle Dienste und Versionen der Anwendung. Die Routingregeln gelten auch für URLs, die in einer Cron-Datei oder einer Konfiguration der Aufgabenwarteschlange verwendet werden.

Weiterleitungsdatei bereitstellen

Die Datei dispatch.yaml sollte sich im root-Verzeichnis oder im Verzeichnis befinden, das den Standarddienst definiert.

Überprüfen Sie vor dem Bereitstellen der Weiterleitungsdatei, ob alle in der Datei definierten Dienste schon in App Engine bereitgestellt wurden. Führen Sie zum Bereitstellen der Datei dispatch.yaml den Befehl gcloud app deploy aus dem Verzeichnis aus, das dispatch.yaml enthält:

gcloud app deploy dispatch.yaml
Weitere Informationen zu den Bereitstellungsbefehlen finden Sie unter Python 2-Anwendung bereitstellen.

Syntax

Das Stammelement in der Datei dispatch.yaml ist dispatch: und enthält eine Liste von Routingdefinitionen, die durch die folgenden Unterelemente angegeben werden.

Die Regeln, die Sie in der Weiterleitungsdatei festlegen, müssen HTTP-URL-Muster verwenden, die das Trennzeichen "." zum Trennen von Subdomains enthalten. URLs, die mit der HTTPS-Notation "-dot-" definiert sind, werden nicht unterstützt.

Weiterleitungsregeln sind von der Reihenfolge abhängig. Außerdem wird nur die erste Regel angewendet, bei der eine Übereinstimmung mit einer URL besteht.

Element Beschreibung
service

Gibt den Namen des Dienstes an, der die Anfragen verarbeitet, die dem Muster url entsprechen. Früher wurden Dienste als Module bezeichnet.

url

Im Element url definieren Sie das URL-Muster in Anführungszeichen. Es kann den Hostnamen und den URL-Pfad enthalten und darf nicht länger als 100 Zeichen sein. Für das Element service geben Sie den Namen des Dienstes an, der eingehende Anfragen verarbeiten soll, die mit dem URL-Muster des Elements url übereinstimmen.

Tipp: Sie können glob-Muster wie das Platzhalterzeichen * im Element url verwenden. Diese Muster können jedoch nur vor dem Hostnamen und am Ende des URL-Pfads verwendet werden.

URL-Muster, das den Hostnamen und den URL-Pfad enthalten kann. Zum Vergleichen von Mustern können Glob-Zeichen verwendet werden. Glob-Zeichen sind nur am Anfang und am Ende des Musters zulässig.

URL-Pfade, die mit /_ah/ beginnen, werden durch die Weiterleitungsdatei nicht weitergeleitet.

Beispiel

Das folgende Beispiel zeigt eine Weiterleitungsdatei, die Anfragen an https://simple-sample.uc.r.appspot.com und Anfragen wie https://simple-sample.uc.r.appspot.com/favicon.ico an den Dienst default weiterleitet. Der gesamte statische Content wird über den Dienst default bereitgestellt. Mobile Anfragen wie https://simple-sample.uc.r.appspot.com/mobile/ werden an ein mobiles Front-End weitergeleitet und Worker-Anfragen wie https://simple-sample.uc.r.appspot.com/work/ werden an ein statisches Back-End weitergeleitet.

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

Wenn Sie allgemeine Routingregeln bevorzugen, die vielen möglichen Anfragen entsprechen, können Sie Regeln mit größeren Gültigkeitsbereichen definieren. Beispiel:

# 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

Sie können auch Ausdrücke festlegen, die eingeschränkter sind:

# 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

Einschränkungen

Die Weiterleitungsdatei kann bis zu 20 Routingregeln enthalten. Bei Angabe des URL-Strings darf sowohl der Hostname als auch der Pfad höchstens 100 Zeichen lang sein.

Alle Weiterleitungsregeln löschen

So löschen Sie alle Weiterleitungsregeln:

  1. Bearbeiten Sie den Inhalt der Datei dispatch.yaml so:

    dispatch: []
    
  2. Stellen Sie die Datei dispatch.yaml in App Engine bereit.