URL-Mapping verwenden

In dieser Anleitung erfahren Sie, wie Sie Google Cloud-URL-Zuordnungen konfigurieren. Bevor Sie dieser Anleitung folgen, sollten Sie sich mit URL-Zuordnungskonzepten vertraut machen.

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

Das interne HTTP(S)-Load-Balancing und Traffic Director unterstützen erweiterte Anwendungsfälle für die Trafficverwaltung. Weitere Informationen

URL-Zuordnungen konfigurieren

Sie können einer URL-Zuordnung Back-End-Dienste und Back-End-Buckets hinzufügen.

Back-End-Buckets werden nur von externen HTTP(S)-Load-Balancern unterstützt.

URL-Zuordnung hinzufügen

Console

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

  1. Öffnen Sie die Seite Load-Balancing.

    Zur Seite "Load-Balancing"

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm 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 Back-End-Dienst oder Back-End-Bucket aus.
  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 mit dem gcloud-Befehlszeilentool 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 internen HTTP(S)-Load-Balancern darauf, dass beim Erstellen der URL-Zuordnung das Flag --region angegeben wird.

Eine neu erstellte URL-Zuordnung passt nur zu einem Pfad, dem Standardpfad (/*). Dieser Pfad-Matcher wird automatisch erstellt. Der gesamte Traffic, der nicht mit einem manuell erstellten Pfad-Matcher oder einer Hostregel übereinstimmt, wird an den Standard-Back-End-Dienst entsprechend der URL-Zuordnung gesendet.

Pfad-Matcher hinzufügen

Ein Pfad-Matcher ordnet Back-End-Diensten Anfragepfade oder Pfadpräfixe wie /video zu. Der gesamte Traffic, der dem angegebenen Pfad entspricht, wird von Pfadregeln im Pfad-Matcher verarbeitet. Entspricht der Pfad eines Requests einer Pfadregel, wird der Request an die Back-Ends weitergeleitet, die der Pfadregel zugeordnet sind. Wenn eine Anfrage den no path-Regeln des Pfad-Matchers entspricht, wird sie an das Standard-Back-End des Pfad-Matchers weitergeleitet.

Console

Führen Sie die folgenden Schritte aus, um mithilfe der Cloud Console einen Pfad-Matcher zu erstellen:

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

    Zur Seite "Load-Balancing"

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm Details zum Load-Balancer für den ausgewählten Load-Balancer auf Bearbeiten .
  4. Klicken Sie im Bildschirm Host- und Pfadregeln entweder auf Host- und Pfadregel hinzufügen oder auf ein vorhandenes Feld Pfade.
  5. Geben Sie den zu konfigurierenden Pfad ein, z. B. /video.
  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

Um einen Pfad-Matcher mit dem gcloud-Befehlszeilentool zu erstellen, verwenden Sie den Befehl gcloud compute url-maps add-path-matcher:

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE"]

Dieser Befehl erfordert einen Standard-Back-End-Dienst, der nicht übereinstimmende Anfragen senden kann. Alternativ können Sie das Flag --path-rules verwenden, um Zuordnungen zwischen den Anfragepfaden und den Back-End-Diensten zu definieren. 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"

Sowohl der Befehl url-maps create als auch der Befehl url-maps add-path-matcher haben einen --default-service-Parameter. Bei Verwendung von create wird der Standarddienst verwendet, wenn keiner der Pfad-Matcher der eingehenden URL entspricht. Bei Nutzung von add-path-matcher wird der Standarddienst verwendet, wenn der Pfad mit dem Pfad-Matcher übereinstimmt, aber keine Übereinstimmung mit --path-rules vorliegt.

Hostregel hinzufügen

Console

Führen Sie die folgenden Schritte aus, um mithilfe der Cloud Console eine Hostregel zu erstellen:

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

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm Details zum Load-Balancer für den ausgewählten Load-Balancer auf Bearbeiten .
  4. Klicken Sie im Bildschirm Host- und Pfadregeln entweder auf Host- und Pfadregel hinzufügen oder auf ein vorhandenes Feld Hosts.
  5. Geben Sie einen vollqualifizierten Hostnamen ein, zum Beispiel web.example.com.
  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 add-host-rule, um mithilfe des gcloud-Befehlszeilentools eine Hostregel zu erstellen:

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

Mit dem Flag --hosts wird eine Reihe von Hosts definiert, die Anfragen abgleichen sollen. Mit dem folgenden --hosts-Wert werden beispielsweise Anfragen mit www.example.com und mit einer beliebigen Subdomain von google.com abgeglichen:

--hosts *.google.com,www.example.com

Back-End-Dienst oder Back-End-Bucket auswählen

Console

Führen Sie die folgenden Schritte aus, um einen Back-End-Dienst oder einen Back-End-Bucket für eine URL-Zuordnung auszuwählen:

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

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm Details zum Load-Balancer für den ausgewählten Load-Balancer auf Bearbeiten .
  4. Wählen Sie im Bildschirm Host- und Pfadregeln im Drop-down-Menü des Felds Back-Ends einen verfügbaren Back-End-Dienst oder Back-End-Bucket aus.
  5. 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 url-maps set-default-service, um mithilfe des gcloud-Befehlszeilentools einen Back-End-Dienst oder einen Back-End-Bucket auszuwählen.

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

Konfiguration der URL-Zuordnung validieren

Bevor Sie eine URL-Zuordnung bereitstellen, validieren Sie ihre Konfiguration, um zu prüfen, ob die Zuordnung Anfragen wie vorgesehen an die entsprechenden Back-Ends weiterleitet. Fügen Sie dazu der Konfiguration der URL-Zuordnung Tests hinzu. Sie können mit verschiedenen URL-Zuordnungsregeln experimentieren und so viele Tests wie nötig ausführen, um sicherzugehen, dass die Zuordnung den Traffic bei der Bereitstellung korrekt weiterleitet. Außerdem können Sie eventuelle Regelä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. Beachten Sie, dass mit diesem Befehl nur die bereitgestellte Konfiguration getestet wird. Unabhängig davon, ob die Tests erfolgreich sind oder nicht, werden Änderungen nicht in der derzeit bereitgestellten URL-Zuordnung gespeichert. Dies unterscheidet sich von anderen url-maps-Befehlen (edit, import), die zwar dieselben Tests ausführen, die neue Konfiguration jedoch speichern, wenn die Tests erfolgreich sind. Verwenden Sie den Befehl validate, wenn Sie die neue Routingkonfiguration testen möchten, ohne Änderungen an der derzeit 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. Sie müssen für die Tests weder Live-Dienste noch vorhandene Dienste verwenden. Sie können beliebige Dienstnamen verwenden, um die Tests zu erstellen und auszuführen. Dies unterscheidet sich von anderen url-maps-Befehlen (z. B. edit, import), bei denen die URL-Zuordnung auf vorhandene Dienste (nicht unbedingt Live-Dienste) verweisen muss.

Console

Sie können die Konfiguration der URL-Zuordnung nicht mit der 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:

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
  • 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 HTTP(S)-Load-Balancer bearbeiten und alle Anfragen mit dem Pfad /video an einen neuen Back-End-Dienst namens video-backend-service senden möchten, können Sie der Konfiguration der URL-Zuordnung so Tests hinzufügen:

    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 die URL-Zuordnung durch diesen Schritt auch mit der neuen Konfiguration bereitgestellt wird.

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

URL-Zuordnung testen

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

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 Cloud Console aus:

  1. Öffnen Sie die Seite Load-Balancing.

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm Details zum Load-Balancer für den ausgewählten Load-Balancer auf Bearbeiten .
  4. Klicken Sie auf Host- und Pfadregeln.
  5. Klicken Sie unter Host- und Pfadregeln auf Konfigurationstests anzeigen.
  6. Klicken Sie auf Konfigurationstest hinzufügen. Fügen Sie die folgenden Test-URLs und Back-Ends hinzu:
    • Test-URL example.com und Back-End www-service.
    • Test-URL example.net und Back-End www-service.
    • Test-URL example.net/web und Back-End www-service.
    • Test-URL example.com/videos und Back-End video-service.
    • Test-URL example.com/videos/browse und Back-End video-service.
    • Test-URL example.net/static und Back-End static-service.
    • Test-URL example.net/static/images und Back-End static-service.
  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

Verwenden Sie den Befehl gcloud compute url-maps edit, um mithilfe des gcloud-Befehlszeilentools Tests zu Ihrer URL-Zuordnung hinzuzufügen:

gcloud compute url-maps edit URL_MAP_NAME

Dieser startet einen Texteditor. Für externe HTTP(S)-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

Für interne HTTP(S)-Load-Balancer müssen die Dienst-URLs auf regionale Back-End-Dienste verweisen. Beispiel:

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices//www-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 Ihre URL-Zuordnungen in der Cloud Console auflisten.

gcloud

Verwenden Sie den Befehl url-maps list, um mithilfe des gcloud-Befehlszeilentools eine Liste der 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.

    Zur Seite Load balancing

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm 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 des gcloud-Befehlszeilentools 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.

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm Details zum Load-Balancer für den ausgewählten Load-Balancer auf Bearbeiten .
  4. Sehen Sie sich im Bildschirm 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 dem gcloud-Befehlszeilentool 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]

PathMatcher löschen

Console

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

  1. Öffnen Sie die Seite Load-Balancing.

    Zur Seite "Load-Balancing"

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm 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]

Hostregel löschen

Console

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

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

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen eines Load-Balancers.
  3. Klicken Sie im Bildschirm 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 google.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 google.com

Nächste Schritte