URL-Mapping verwenden

In dieser Anleitung erfahren Sie, wie Sie Google Cloud-URL-Zuordnungen konfigurieren. Eine URL-Zuordnung ist eine Reihe von Regeln zum Weiterleiten eingehender HTTP(S)-Anfragen an bestimmte Backend-Dienste oder Backend-Buckets. Eine minimale URL-Zuordnung deckt alle eingehenden Anfragepfade ab (/*).

Bevor Sie dieser Anleitung folgen, sollten Sie sich mit URL-Zuordnungskonzepten vertraut machen.

URL-Zuordnungen werden bei den folgenden Google Cloud-Produkten verwendet:

URL-Zuordnungen, die mit globalen externen Application Load Balancern, regionalen externen Application Load Balancern, internen Application Load Balancern und Cloud Service Mesh verwendet werden, unterstützen ebenfalls mehrere erweiterte Features zur Trafficverwaltung. Weitere Informationen finden Sie unter Konzepte der URL-Zuordnung: Erweiterte Trafficverwaltung.

Standardeinstellungen für URL-Zuordnungen

URL-Zuordnungen haben zwei Standardeinstellungen, wie in der folgenden Tabelle beschrieben.

Standardtyp Einstellung Bedeutung
Standardeinstellung für URL-Zuordnung gcloud compute url-maps create

--default-service | --default-backend-bucket

Der angegebene Standard-Backend-Dienst oder der Backend-Bucket wird verwendet, wenn keiner der Pfad-Matcher oder Hostregeln mit der eingehenden URL übereinstimmt.
Standardeinstellung für Pfad-Matcher gcloud compute url-maps add-path-matcher

--default-service | --default-backend-bucket

Der angegebene Standard-Backend-Dienst oder der Backend-Bucket wird verwendet, wenn der Pfad der URL mit einem Pfad-Matcher übereinstimmt, aber mit keinem der angegebenen --path-rules übereinstimmt.

Hostregeln

Eine Hostregel definiert eine Reihe von Hosts, die Anfragen abgleichen sollen.

In einer Hostregel muss der Hostname ein voll qualifizierter Domainname (FQDN) sein. Der Hostname darf keine IPv4- oder IPv6-Adresse sein. Beispiel:

  • Funktioniert: example.com
  • Funktioniert: web.example.com
  • Funktioniert: *.example.com
  • Funktioniert nicht: 35.244.221.250

URL-Zuordnungen konfigurieren

Eine URL-Zuordnung kann Traffic an Backend-Diensteoder Backend-Buckets senden. Backend-Buckets werden von regionalen externen Application Load Balancern und internen Application Load Balancernnicht unterstützt.

Console

Führen Sie die folgenden Schritte aus, um mithilfe der Google Cloud Console eine URL-Zuordnung hinzuzufügen:

  1. Öffnen Sie die Seite Load-Balancing.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Wählen Sie Host- und Pfadregeln aus.
  5. Klicken Sie auf Host- und Pfadregel hinzufügen.
  6. Füllen Sie das Feld Host, das Feld Pfade oder beide aus und wählen Sie einen Backend-Dienst oder Backend-Bucketaus.

    1. Geben Sie einen vollqualifizierten Hostnamen ein, zum Beispiel web.example.com.
    2. Geben Sie den Pfad ein, z. B. /video.
    3. Wählen Sie auf der Seite Host- und Pfadregeln im Menü Backends einen verfügbaren Backend-Dienst oder Backend-Bucketaus.
  7. Prüfen Sie, ob das blaue Häkchen links neben Host- und Pfadregeln angezeigt wird, und klicken Sie auf die Schaltfläche Aktualisieren.

gcloud

Zum Hinzufügen einer URL-Zuordnung über die Google Cloud-CLI verwenden Sie den Befehl url-maps create:

gcloud compute url-maps create URL_MAP_NAME \
   (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--global | --region=REGION]

Achten Sie bei regionalen externen Application Load Balancern und internen Application Load Balancern darauf, dass Sie beim Erstellen der URL-Zuordnung das Flag --region angeben.

Verwenden Sie den Befehl gcloud compute url-maps add-path-matcher, um einen Pfad-Matcher zu erstellen:

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE or BUCKET"]

Für diesen Befehl ist ein Standard-Backend-Dienst oder ein Backend-Bucket erforderlich, an den nicht übereinstimmende Anfragen gesendet werden können. Das Flag --path-rules definiert Zuordnungen zwischen Anfragepfaden und Backend-Diensten oder -Buckets. Im folgenden Beispiel werden die Anfragepfade /video/ und /video/* an den Back-End-Dienst video-service weitergeleitet:

--path-rules="/video=video-service,/video/*=video-service"

Verwenden Sie den Befehl gcloud compute url-maps add-host-rule, um eine Hostregel zu erstellen:

gcloud compute url-maps add-host-rule URL_MAP_NAME \
    --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER

Der folgende --hosts-Wert stimmt beispielsweise mit Anfragen gegen www.example.com und einer beliebigen Subdomain von altostrat.com überein:

--hosts=[*.altostrat.com,www.example.com]

Verwenden Sie zum Ändern des Standarddienstes oder des Standard-Buckets einer URL-Zuordnung den url-maps set-default-service-Befehl:

gcloud compute url-maps set-default-service URL_MAP_NAME
  (--default-backend-bucket=DEFAULT_BACKEND_BUCKET
  | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]

Terraform

Verwenden Sie zum Erstellen einer globalen URL-Zuordnung die Ressource "google_compute_url_map".

# url map
resource "google_compute_url_map" "default" {
  name            = "http-lb"
  default_service = google_compute_backend_bucket.default.id
}

Verwenden Sie zum Erstellen einer regionalen URL-Zuordnung die Ressource "google_compute_region_url_map".

resource "google_compute_region_url_map" "default" {
  name            = "regional-l7-xlb-map"
  region          = "us-west1"
  default_service = google_compute_region_backend_service.default.id
}

Konfiguration der URL-Zuordnung validieren

Bevor Sie eine URL-Zuordnung bereitstellen, sollten Sie die Konfiguration der URL-Zuordnung überprüfen, damit die Karte Anfragen wie vorgesehen an die entsprechenden Back-Ends weiterleitet. Dazu können Sie der Konfiguration der URL-Zuordnung Tests hinzufügen. Sie können mit verschiedenen URL-Zuordnungsregeln experimentieren und so viele Tests wie nötig ausführen, damit die Karte bei ihrer Bereitstellung korrekt weitergeleitet wird. Außerdem können Sie bei einem zukünftigen Regelwechsel Änderungen testen, bevor sie mit der neuen Konfiguration veröffentlicht werden.

Verwenden Sie den Befehl gcloud compute url-maps validate, um die Konfiguration der URL-Zuordnung zu validieren. Mit diesem Befehl wird nur die bereitgestellte Konfiguration getestet. Unabhängig davon, ob die Tests erfolgreich sind oder nicht, werden keine Änderungen in der bereitgestellten URL-Zuordnung gespeichert. Dieses Verhalten unterscheidet sich von anderen Befehlen der URL-Zuordnung (edit, import), die die gleichen Tests ausführen, die neue Konfiguration jedoch speichern, wenn die Tests erfolgreich sind. Verwenden Sie den Befehl validate, wenn Sie eine neue Routingkonfiguration testen möchten, ohne Änderungen an der bereitgestellten URL-Zuordnung vorzunehmen.

Mit dem Befehl validate können Sie erweiterte Routenkonfigurationen testen, z. B. Routing basierend auf Headern und Abfrageparametern, HTTP-zu-HTTPS-Weiterleitungen und URL-Umschreibungen.

Console

Sie können die Konfiguration der URL-Zuordnung nicht mit der Google Cloud Console validieren. Verwenden Sie stattdessen gcloud oder die REST API.

gcloud

Validieren Sie die Konfiguration der URL-Zuordnung mit dem Befehl gcloud compute url-maps validate.

Für den globalen externen Application Load Balancer:

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --global

Für den klassischen Application Load Balancer:

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
    --load-balancing-scheme=EXTERNAL \
    --global
  • PATH_TO_URL_MAP_CONFIG_FILE: Ersetzen Sie diesen Wert durch den Pfad der Datei, in der die Konfiguration der URL-Zuordnung enthalten ist, die Sie validieren möchten.

Änderungen an der URL-Zuordnung eines vorhandenen Load-Balancers validieren

Wenn Sie Änderungen an der URL-Zuordnung eines vorhandenen Load-Balancers vornehmen müssen, können Sie diese Konfigurationsänderungen testen, bevor Sie sie veröffentlichen.

  1. Exportieren Sie die vorhandene URL-Zuordnung des Load-Balancers in eine YAML-Datei.

    gcloud compute url-maps export URL_MAP_NAME \
       --destination PATH_TO_URL_MAP_CONFIG_FILE \
       --global
    
  2. Bearbeiten Sie die YAML-Datei mit der neuen Konfiguration. Wenn Sie beispielsweise einen externen Application Load Balancer bearbeiten und alle Anfragen mit dem Pfad /video an einen neuen Backend-Dienst namens video-backend-service senden möchten, können Sie testet die URL-Zuordnung so:

    Vorhandene Konfiguration der URL-Zuordnung mit einem einzigen Standard-web-backend-service:

     kind: compute#urlMap
     name: URL_MAP_NAME
     defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     

    Geänderte Konfiguration der URL-Zuordnung mit hinzugefügtem Pfad-Matcher und Tests für den Standard-web-backend-service und den neuen video-backend-service-Back-End-Dienst:

     kind: compute#urlMap
     name: URL_MAP_NAME
     defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     hostRules:
     - hosts:
       - '*'
       pathMatcher: pathmap
     pathMatchers:
     - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
       name: pathmap
       pathRules:
       - paths:
         - /video
         - /video/*
         service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
     tests:
     - description: Test routing to existing web service
       host: foobar
       path: /
       service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     - description: Test routing to new video service
       host: foobar
       path: /video
       service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
    
  3. Validieren Sie die neue Konfiguration.

    gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
    

    Wenn alle Tests erfolgreich sind, erhalten Sie eine Erfolgsmeldung wie diese:

    Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
    

    Wenn die Tests fehlschlagen, wird eine Fehlermeldung angezeigt. Nehmen Sie die erforderlichen Änderungen an der Konfigurationsdatei der URL-Zuordnung vor und versuchen Sie noch einmal, die Datei zu validieren.

    Error: Invalid value for field 'urlMap.tests': ''.
    Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
    
  4. Wenn Sie wissen, dass die neue Konfiguration funktioniert und sich nicht auf die bestehende Konfiguration auswirkt, können Sie sie in die URL-Zuordnung importieren. Beachten Sie, dass durch diesen Schritt die URL-Zuordnung ebenfalls mit der neuen Konfiguration bereitgestellt wird.

    gcloud compute url-maps import URL_MAP_NAME \
       --source PATH_TO_URL_MAP_CONFIG_FILE \
       --global
    

Tests zu einer URL-Zuordnung hinzufügen

Sie können einer URL-Zuordnung Konfigurationstests hinzufügen, damit Ihre URL-Zuordnung Anfragen wie vorgesehen an die Backend-Dienste oder Backend-Buckets weiterleitet.

In diesem Abschnitt wird beschrieben, wie Sie einer bereits bereitgestellten URL-Zuordnung Tests hinzufügen. Wenn Sie Änderungen an einer URL-Zuordnung testen möchten, ohne die Karte tatsächlich bereitzustellen, finden Sie weitere Informationen unter Konfiguration der URL-Zuordnung prüfen.

Wenn Sie Ihre URL-Zuordnung bearbeiten, werden die Tests ausgeführt und es wird eine Fehlermeldung angezeigt, falls ein Test fehlschlägt.

Error: Invalid value for field 'urlMap.tests': ''.
Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.

Das Hinzufügen von Tests zu URL-Zuordnungen ist optional.

Console

So führen Sie Tests über die Google Cloud Console aus:

  1. Öffnen Sie die Seite Load-Balancing.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Klicken Sie auf Routingregeln. Bei einem klassischen Application Load Balancer ist dies Host- und Pfadregeln.
  5. Klicken Sie auf Konfigurationstests anzeigen.
  6. Klicken Sie auf Konfigurationstest hinzufügen. Fügen Sie die folgenden Test-URLs und Back-Ends hinzu:
    • Host und Pfad 1 testen example.com und Backend www-service.
    • Host und Pfad 2 testen example.net und Backend www-service.
    • Host und Pfad 3 testen example.net/web und Backend www-service.
    • Host und Pfad 4 testen example.com/videos und Backend video-service.
    • Host und Pfad 5 testen example.com/videos/browse und Backend video-service.
    • Host und Pfad 6 testen example.net/static und Backend static-service.
    • Host und Pfad 7 testen example.net/static/images und Backend static-service.
  7. Prüfen Sie, dass das blaue Häkchen links neben Routingregeln angezeigt wird, und klicken Sie auf die Schaltfläche Aktualisieren. Bei einem klassischen Application Load Balancer suchen Sie nach dem blauen Häkchen neben Host- und Pfadregeln.

gcloud

Verwenden Sie den Befehl gcloud compute url-maps edit, um mithilfe der Google Cloud-CLI Tests zu Ihrer URL-Zuordnung hinzuzufügen:

gcloud compute url-maps edit URL_MAP_NAME

Dieser startet einen Texteditor. Für externe Application Load Balancer müssen Ihre Tests das folgende Format haben:

  tests:
    - host: example.com
    service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.net
    service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.com
      path: /videos
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
    - host: example.com
      path: /videos/browse
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
    - host: example.net
      path: /web
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.net
      path: /static
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
    - host: example.net
      path: /static/images
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service

Wenn Sie keinen Host in einer Hostregel angeben, können URLs von allen Hosts (sowohl "example.com" als auch "example.net") übereinstimmen. Falls Sie aber Hostregeln verwenden, müssen Sie Regeln erstellen, die sowohl "example.com" als auch "example.net" abgleichen.

URL-Zuordnungen auflisten

Console

Sie können nicht alle URL-Zuordnungen in der Google Cloud Console auflisten.

gcloud

Verwenden Sie den Befehl url-maps list, um mithilfe der Google Cloud-CLI eine Liste von URL-Zuordnungen aufzurufen.

gcloud compute url-maps list

Informationen zu einer URL-Zuordnung abrufen

Console

Führen Sie folgende Schritte aus, um Informationen zu einer URL-Zuordnung abzurufen:

  1. Öffnen Sie die Seite Load-Balancing.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Sehen Sie sich die Host- und Pfadregeln an.

gcloud

Verwenden Sie den Befehl url-maps describe, um mithilfe der Google Cloud-CLI Informationen zu einer einzelnen URL-Zuordnung abzurufen.

gcloud compute url-maps describe URL_MAP_NAME

URL-Zuordnung löschen

Sie können eine URL-Zuordnung erst löschen, nachdem Sie alle Ziel-Proxys gelöscht haben, die darauf verweisen. Weitere Informationen finden Sie unter Ziel-Proxy löschen.

Console

Führen Sie folgende Schritte aus, um eine URL-Zuordnung zu löschen:

  1. Öffnen Sie die Seite Load-Balancing.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Sehen Sie sich auf der Seite Details zum Load-Balancer die Host- und Pfadregeln an.
  5. Klicken Sie auf das "X" rechts neben einer URL-Zuordnung, um sie zu löschen. Die URL-Zuordnung wird nicht mehr angezeigt.
  6. Prüfen Sie, ob das blaue Häkchen links neben Host- und Pfadregeln angezeigt wird, und klicken Sie auf die Schaltfläche Aktualisieren.

gcloud

Zum Löschen einer URL-Zuordnung mit der Google Cloud-CLI verwenden Sie den Befehl url-maps delete. Bevor Sie eine URL-Zuordnung löschen können, müssen zuerst alle Ziel-HTTP-Proxys, die auf die URL-Zuordnung verweisen, gelöscht werden:

gcloud compute url-maps delete URL_MAP_NAME [--quiet]

Einen PathMatcher löschen

Console

Führen Sie folgende Schritte aus, um einen Pfad-Matcher zu löschen:

  1. Öffnen Sie die Seite Load-Balancing.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Wählen Sie Host- und Pfadregeln aus.
  5. Klicken Sie im Feld Pfade für eine vorhandene URL-Zuordnung auf das "x" im Pfad-Matcher-Namen.
  6. Prüfen Sie, ob das blaue Häkchen links neben Host- und Pfadregeln angezeigt wird, und klicken Sie auf die Schaltfläche Aktualisieren.

gcloud

Verwenden Sie den Befehl gcloud compute url-maps remove-path-matcher, um einen Pfad-Matcher zu löschen.

gcloud compute url-maps remove-path-matcher URL_MAP_NAME \
   [--path-matcher-name PATH_MATCHER]

Eine Hostregel löschen

Console

Führen Sie folgende Schritte aus, um eine Hostregel zu löschen:

  1. Wenn Sie sich noch nicht auf der Seite Host- und Pfadregeln befinden, rufen Sie die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie auf der Seite Details zum Load-Balancer für den ausgewählten Load Balancer auf Bearbeiten .
  4. Wählen Sie Host- und Pfadregeln aus.
  5. Klicken Sie im Feld Hosts für eine vorhandene URL-Zuordnung auf das "x" im Hostnamen.
  6. Prüfen Sie, ob das blaue Häkchen links neben Host- und Pfadregeln angezeigt wird, und klicken Sie auf die Schaltfläche Aktualisieren.

gcloud

Verwenden Sie den Befehl gcloud compute url-maps remove-host-rule, um eine Hostregel aus einer URL-Zuordnung zu löschen:

gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST

Wenn Sie beispielsweise eine Hostregel mit dem Host altostrat.com aus einer URL-Zuordnung mit dem Namen my-map entfernen möchten, führen Sie folgenden Befehl aus:

gcloud compute url-maps remove-host-rule my-map --host altostrat.com

Leitfäden zur Trafficverwaltung

Nicht alle URL-Zuordnungs-Features sind für alle Produkte verfügbar. URL-Zuordnungen werden mit Load Balancern verwendet, um mehrere erweiterte Features zur Trafficverwaltung zu unterstützen, die nicht alle vom klassischen Application Load Balancer unterstützt werden..

In der folgenden Tabelle erfahren Sie mehr über die Features der URL-Zuordnung für die Trafficverwaltung.

Produkt Leitfaden für die Funktionen der URL-Zuordnung und der Trafficverwaltung
Globaler externer Application Load Balancer Load-Balancing-Features: Routing und Trafficverwaltung

Trafficverwaltung – Übersicht

Trafficverwaltung einrichten

URL-Weiterleitung einrichten

HTTP-zu-HTTPS-Weiterleitung einrichten

Hostname und Pfad

Anfragen weiterleiten

Cookies

Klassischer Application Load Balancer Load-Balancing-Features: Routing und Trafficverwaltung

Trafficverwaltung – Übersicht

URL-Weiterleitung einrichten

HTTP-zu-HTTPS-Weiterleitung einrichten

Hostname und Pfad

Routing anhand von Headern und Abfrageparametern

Regionaler externer Application Load Balancer Load-Balancing-Features: Routing und Trafficverwaltung

Trafficverwaltung – Übersicht

Trafficverwaltung einrichten

URL-Weiterleitung einrichten

HTTP-zu-HTTPS-Weiterleitung einrichten

Hostname und Pfad

Anfragen weiterleiten

Cookies

Interner Application Load Balancer Load-Balancing-Features: Routing und Trafficverwaltung

Trafficverwaltung – Übersicht

Trafficverwaltung einrichten

URL-Weiterleitungen einrichten

HTTP-zu-HTTPS-Weiterleitungen einrichten

Cookies

Hostname und Pfad

Cloud Service Mesh Cloud Service Mesh-Features: Routing und Trafficverwaltung

Übersicht über die erweiterte Trafficverwaltung

Erweiterte Trafficverwaltung konfigurieren

Referenz zu API und gcloud-CLI

Zusätzlich zur Google Cloud Console können Sie die API und die gcloud CLI verwenden, um URL-Zuordnungen zu erstellen.

API

Eine Beschreibung der Attribute und Methoden, die Sie für URL-Zuordnungen über die REST API nutzen können, finden Sie unter:

Produkt API-Dokumentation
Externer Application Load Balancer urlMaps
Interner Application Load Balancer regionUrlMaps
Cloud Service Mesh urlMaps

gcloud-CLI

Informationen zur Google Cloud-CLI in der Google Cloud CLI finden Sie unter:

  • Global: --global
  • Regional: --region=[REGION]

Verwenden Sie für eine erweiterte Trafficverwaltung YAML-Dateien und importieren Sie sie mit dem Befehl gcloud compute url-maps import.

Nächste Schritte