Regionalen externen HTTP(S)-Load-Balancer mit Cloud Run einrichten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite wird beschrieben, wie Sie einen regionalen externen HTTP(S)-Load-Balancer mit einem Cloud Run-Back-End bereitstellen. Dazu verwenden Sie ein serverloses NEG-Back-End für den Load-Balancer.

Bevor Sie dieses Verfahren ausprobieren, sollten Sie sich mit den folgenden Themen vertraut machen:

Serverlose NEGs bieten Ihnen die Möglichkeit, Cloud Run-Dienste mit Ihrem Load-Balancer zu verwenden. Nachdem Sie einen Load-Balancer mit dem serverlosen NEG-Back-End konfiguriert haben, werden Anfragen an den Load-Balancer zum Cloud Run-Back-End geleitet.

Vorbereitung

  1. Installieren Sie Google Cloud CLI.
  2. Stellen Sie einen Cloud Run-Dienst bereit.
  3. Konfigurieren Sie Berechtigungen.

Google Cloud SDK installieren

Installieren Sie das gcloud-Befehlszeilentool. In der gcloud-Übersicht finden Sie Informationen zum Konzept und zur Installation des Tools.

Wenn Sie das gcloud-Befehlszeilentool bisher noch nicht verwendet haben, führen Sie zuerst gcloud init aus, um Ihr gcloud-Verzeichnis zu initialisieren.

Hinweis: Sie können die Google Cloud Console nicht verwenden, um einen regionalen externen HTTP(S)-Load-Balancer mit einem serverlosen NEG-Back-End einzurichten.

Cloud Run-Dienst bereitstellen

Bei den Anleitungen auf dieser Seite wird davon ausgegangen, dass Sie bereits einen Cloud Run-Dienst ausführen.

Für das Beispiel auf dieser Seite können Sie jede der Cloud Run-Kurzanleitungen verwenden, um einen Cloud Run-Dienst bereitzustellen.

Die serverlose NEG und der Load-Balancer müssen sich in derselben Region wie der Cloud Run-Dienst befinden. Sie können externe Anfragen blockieren, die direkt an die Standard-URLs des Cloud Run-Dienstes gesendet werden. Beschränken Sie dazu den eingehenden Traffic auf internal and cloud load balancing. Beispiel:

gcloud run deploy CLOUD_RUN_SERVICE_NAME \
  --platform=managed \
  --allow-unauthenticated \
  --ingress=internal-and-cloud-load-balancing \
  --region=REGION \
  --image=IMAGE_URL

Notieren Sie sich den Namen des Dienstes, den Sie erstellen. Auf der restlichen Seite wird beschrieben, wie Sie einen Load-Balancer einrichten, der Anfragen an diesen Dienst weiterleitet.

Berechtigungen konfigurieren

Um dieser Anleitung zu folgen, müssen Sie in einem Projekt eine serverlose NEG und einen Load-Balancer erstellen. Sie sollten entweder Inhaber oder Bearbeiter des Projekts sein oder die folgenden IAM-Rollen für Compute Engine haben:

Aufgabe Erforderliche Rolle
Load-Balancer und Netzwerkkomponenten erstellen Netzwerkadministrator
NEGs erstellen und ändern Compute-Instanzadministrator
SSL-Zertifikate erstellen und ändern Sicherheitsadministrator

Netzwerk und Subnetze konfigurieren

Um das Netzwerk und seine Subnetze zu konfigurieren, müssen Sie zuerst ein VPC-Netzwerk, eine VM-Instanz in einem bestimmten Subnetz und dann ein Nur-Proxy-Subnetz erstellen.

VPC-Netzwerk erstellen

Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus und dann die Subnetze, die Sie innerhalb einer Region benötigen. Definieren Sie abschließend die Firewallregeln für Ihr Netzwerk

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie im Feld Name lb-network ein.

  4. Wählen Sie im Feld Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Legen Sie im Abschnitt Neues Subnetz folgende Konfigurationsparameter für das Subnetz fest:

    1. Geben Sie einen Namen für das Subnetz an.
    2. Wählen Sie eine Region aus.
    3. Geben Sie einen IP-Adressbereich ein, z. B. 10.1.2.0/24. Weitere Informationen finden Sie im Abschnitt Primärer IPv4-Bereich.

      Wenn Sie einen Bereich auswählen, der keine RFC 1918-Adresse ist, prüfen Sie, ob der Bereich mit einer vorhandenen Konfiguration in Konflikt steht. Weitere Informationen finden Sie unter IPv4-Subnetzbereiche.

    4. Klicken Sie auf Fertig.

  6. Wählen Sie im Abschnitt Firewallregeln auf dem Tab IPv4-Firewallregeln vordefinierte Firewallregeln aus. Diese vordefinierten Regeln berücksichtigen gängige Anwendungsfälle für die Konnektivität zu Instanzen.

    Jeder vordefinierte Regelname beginnt mit dem Namen des VPC-Netzwerks, das Sie erstellen: .

    1. Optional: Sie können die Regel lb-network-allow-custom bearbeiten. Klicken Sie dazu auf der rechten Seite der Zeile, die die Regel enthält, auf Bearbeiten, um Subnetze auszuwählen, zusätzliche IPv4-Bereiche hinzuzufügen und Protokolle sowie Ports anzugeben.

    Wenn Sie später weitere Subnetze hinzufügen, wird die Firewallregel lb-network-allow-custom nicht automatisch aktualisiert. Wenn Sie Firewallregeln für die neuen Subnetze benötigen, müssen Sie die Konfiguration der Firewallregel aktualisieren.

    Wenn Sie keine vordefinierten Regeln auswählen, können Sie eigene Firewallregeln anlegen, nachdem Sie das Netzwerk erstellt haben.

  7. Wählen Sie den Modus für dynamisches Routing für das VPC-Netzwerk aus. Sie können später den Modus für dynamisches Routing ändern.

    Weitere Informationen finden Sie unter Modus für dynamisches Routing.

  8. Wählen Sie im Feld Maximale Übertragungseinheit (MTU) die Option 1460 (Standardeinstellung) oder 1500 aus.

    Lesen Sie die maximale Übertragungseinheit, bevor Sie die MTU auf 1500 setzen.

  9. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute networks create das benutzerdefinierte VPC-Netzwerk:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Erstellen Sie ein Subnetz im Netzwerk lb-network. In diesem Beispiel wird der IP-Adressbereich 10.1.2.0/24 für das Subnetz verwendet. Sie können einen beliebigen gültigen Subnetzbereich konfigurieren.

    gcloud compute networks subnets create lb-subnet \
    --network=lb-network \
    --range=10.1.2.0/24 \
    --region=REGION
    

VM-Instanz in einem bestimmten Subnetz erstellen

Im VPC-Netzwerk, in dem Sie einen regionalen Load-Balancer mit einem serverlosen Back-End einrichten möchten, muss mindestens eine VM vorhanden sein. Wenn Sie bereits eine VM im Netzwerk haben, müssen Sie diesen Schritt nicht ausführen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM als test-vm an. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie im Abschnitt Firewall die Option HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, um HTTP- oder HTTPS-Traffic zur VM zuzulassen.

    In der Google Cloud Console werden der VM ein Netzwerk-Tag hinzugefügt und entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulassen.

    Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Virtual Private Cloud-Dokumentation.

  7. Maximieren Sie den Abschnitt Netzwerk, Laufwerke, Sicherheit, Verwaltung, Einzelmandanten.

    1. Maximieren Sie den Bereich Netzwerk.
    2. Geben Sie unter Netzwerkschnittstellen die Netzwerkdetails an:
      1. Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, das das von Ihnen erstellte Subnetz enthält, z. B. lb-network.
      2. Wählen Sie im Feld Subnetz das Subnetz aus, das die VM verwenden soll, z. B. lb-subnet.
      3. Klicken Sie auf Fertig.
  8. Klicken Sie zum Erstellen und Starten der VM auf Erstellen.

gcloud

  1. Erstellen Sie eine VM.

    gcloud compute instances create test-vm \
    --network=lb-network \
    --subnet=lb-subnet \
    --zone=ZONE
    

Nur-Proxy-Subnetz erstellen

Erstellen Sie ein Nur-Proxy-Subnetz für alle regionalen Envoy-basierten Load-Balancer in einer bestimmten Region des lb-network-Netzwerks.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
    Zur Seite „VPC-Netzwerke“
  2. Klicken Sie auf den Namen des freigegebenen VPC-Netzwerks, dem Sie das Nur-Proxy-Subnetz hinzufügen möchten.
  3. Klicken Sie auf Subnetz hinzufügen.
  4. Geben Sie im Feld Name proxy-only-subnet ein.
  5. Wählen Sie eine Region aus.
  6. Setzen Sie Zweck auf Regional verwalteter Proxy.
  7. Geben Sie einen IP-Adressbereich als 10.129.0.0/23 ein.
  8. Klicken Sie auf Add (Hinzufügen).

gcloud

  1. Erstellen Sie das Nur-Proxy-Subnetz mit dem Befehl gcloud compute networks subnets create.
    In diesem Beispiel wird der IP-Adressbereich 10.129.0.0/23 für das Nur-Proxy-Subnetz verwendet. Sie können einen beliebigen gültigen Subnetzbereich konfigurieren.

    gcloud compute networks subnets create proxy-only-subnet \
     --purpose=REGIONAL_MANAGED_PROXY \
     --role=ACTIVE \
     --region=REGION \
     --network=lb-network \
     --range=10.129.0.0/23
    

Load-Balancer erstellen

Im folgenden Diagramm verwendet der Load-Balancer ein serverloses NEG-Back-End, um Anfragen zu einem serverlosen Cloud Run-Dienst zu leiten.

Architektur des regionalen externen HTTP(S)-Load-Balancings für eine Cloud Run-Anwendung.
Architektur des regionalen externen HTTP(S)-Load-Balancings für eine Cloud Run-Anwendung

Traffic, der vom Load-Balancer zu den serverlosen NEG-Back-Ends geht, verwendet spezielle Routen außerhalb der VPC, die keinen Firewallregeln unterliegen. Wenn Ihr Load-Balancer nur serverlose NEG-Back-Ends hat, müssen Sie keine Firewallregeln erstellen, um Traffic vom Nur-Proxy-Subnetz zum serverlosen Back-End zuzulassen.

Console

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie unter HTTP(S)-Load-Balancing auf Konfiguration starten.
  3. Wählen Sie unter Internet oder nur intern die Option Vom Internet zu meinen VMs oder serverlosen Diensten aus.
  4. Wählen Sie unter Global oder regional den regionalen HTTP(S)-Load-Balancer aus.
  5. Klicken Sie auf Weiter.
  6. Geben Sie serverless-lb als Name für den Load-Balancer ein.
  7. Wählen Sie das Netzwerk als lb_network aus.
  8. Lassen Sie das Fenster geöffnet, um fortzufahren.

Front-End konfigurieren

  1. Bevor Sie fortfahren, benötigen Sie ein SSL-Zertifikat.
  2. Klicken Sie auf Front-End-Konfiguration.
  3. Geben Sie einen Namen ein.
  4. Füllen Sie die folgenden Felder aus, um einen regionalen externen HTTP(S)-Load-Balancer zu konfigurieren.
    1. Wählen Sie unter Protokoll die Option HTTPS aus.
    2. Wählen Sie unter IP-Version die Option IPv4 aus.
    3. Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
    4. Wählen Sie unter Port die Option 443 aus.
    5. Wählen Sie unter Zertifikat ein vorhandenes SSL-Zertifikat aus oder erstellen Sie ein neues Zertifikat.

      Zum Erstellen eines HTTPS-Load-Balancers benötigen Sie eine SSL-Zertifikatsressource, die im HTTPS-Proxy verwendet werden soll. Sie können eine SSL-Zertifikatsressource mithilfe eines selbstverwalteten SSL-Zertifikats erstellen.
      Von Google verwaltete Zertifikate werden nicht unterstützt.

    Wenn Sie diesen Prozess testen möchten, ohne eine SSL-Zertifikatsressource einzurichten, können Sie einen HTTP-Load-Balancer einrichten.

  5. Optional: So erstellen Sie einen HTTP-Load-Balancer:
    1. Wählen Sie unter Protokoll die Option HTTP aus.
    2. Wählen Sie unter IP-Version die Option IPv4 aus.
    3. Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
    4. Wählen Sie unter Port die Option 80 aus.
  6. Klicken Sie auf Fertig.

Back-End-Dienste konfigurieren

  1. Klicken Sie auf Back-End-Konfiguration.
  2. Halten im Drop-down-Menü Back-End-Dienste erstellen oder auswählen den Mauszeiger über Back-End-Dienste und wählen Sie dann Back-End-Dienst erstellen aus.
  3. Geben Sie im Fenster Back-End-Dienst erstellen einen Namen ein.
  4. Wählen Sie unter Back-End-Typ die Option Endpunktgruppe in serverlosem Netzwerk (Vorschau) aus.
  5. Lassen Sie das Protokoll unverändert. Dieser Parameter wird ignoriert.
  6. Wählen Sie unter Back-Ends > Neues Back-End die Option Endpunktgruppe für ein serverloses Netzwerk erstellen aus.
    1. Geben Sie im Fenster Endpunktgruppe für ein serverloses Netzwerk erstellen einen Namen ein.
    2. Unter Region wird die Region des Load-Balancers angezeigt.
    3. Wählen Sie im Feld Typ der Endpunktgruppe für ein serverloses Netzwerk die Option Cloud Run aus. Cloud Run ist der einzige unterstützte Typ.
    4. Wählen Sie Dienstname auswählen aus.
    5. Wählen Sie in der Drop-down-Liste Dienst den Cloud Run-Dienst aus, für den Sie einen Load-Balancer erstellen möchten.
    6. Klicken Sie auf Fertig.
    7. Klicken Sie auf Erstellen.
  7. Klicken Sie im Fenster Back-End-Dienst erstellen auf Erstellen.

Routingregeln konfigurieren

Routingregeln bestimmen, wie Ihr Traffic weitergeleitet wird. Sie können Traffic an einen Back-End-Dienst oder einen Kubernetes-Dienst weiterleiten. Traffic, der nicht explizit mit einem Host- und Pfad-Matcher übereinstimmt, wird an den Standarddienst gesendet.

  1. Klicken Sie auf Einfache Host- und Pfadregel.
  2. Wählen Sie aus der Drop-down-Liste Back-End einen Back-End-Dienst aus.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Werte für Back-End, Host- und Pfadregeln und Front-End.
  3. Klicken Sie auf Erstellen. Warten Sie, bis der Load-Balancer erstellt ist.
  4. Klicken Sie auf den Namen des Load-Balancers (serverless-lb).
  5. Notieren Sie die IP-Adresse des Load-Balancers für die nächste Aufgabe.

gcloud

  1. Reservieren Sie eine statische externe IP-Adresse für den Load-Balancer.
        gcloud compute addresses create ADDRESS_NAME  \
            --region=REGION \
            --network-tier=STANDARD
        
  2. Erstellen Sie eine serverlose NEG für Ihren Cloud Run-Dienst:
        gcloud compute network-endpoint-groups create SERVERLESS_NEG_NAME \
            --region=REGION \
            --network-endpoint-type=serverless  \
            --cloud-run-service=CLOUD_RUN_SERVICE_NAME
        
  3. Erstellen Sie einen regionalen Back-End-Dienst. Legen Sie --protocol entweder auf HTTP oder auf HTTPS fest.
        gcloud beta compute backend-services create BACKEND_SERVICE_NAME \
            --load-balancing-scheme=EXTERNAL_MANAGED \
            --protocol=HTTP \
            --region=REGION
        
  4. Fügen Sie dem Back-End-Dienst das serverlose NEG als Back-End hinzu.
        gcloud beta compute backend-services add-backend BACKEND_SERVICE_NAME \
            --region=REGION \
            --network-endpoint-group=SERVERLESS_NEG_NAME \
            --network-endpoint-group-region=REGION
        
  5. Erstellen Sie eine regionale URL-Zuordnung, um eingehende Anfragen an den Back-End-Dienst weiterzuleiten:
        gcloud beta compute url-maps create URL_MAP_NAME \
            --default-service=BACKEND_SERVICE_NAME \
            --region=REGION
        
    Diese beispielhafte URL-Zuordnung ist nur auf einen Back-End-Dienst ausgerichtet, der eine einzelne serverlose Anwendung darstellt. Daher müssen keine Hostregeln oder Tools zum Abgleich von Pfaden eingerichtet werden.
  6. Zum Erstellen eines HTTPS-Load-Balancers benötigen Sie eine SSL-Zertifikatsressource, die im HTTPS-Zielproxy verwendet werden soll. Sie können eine SSL-Zertifikatsressource mithilfe eines selbstverwalteten SSL-Zertifikats erstellen. Von Google verwaltete Zertifikate werden nicht unterstützt. So erstellen Sie eine regionale selbstverwaltete SSL-Zertifikatsressource:
        gcloud beta compute ssl-certificates create SSL_CERTIFICATE_NAME \
            --certificate CRT_FILE_PATH \
            --private-key KEY_FILE_PATH \
            --region=REGION
        
  7. Erstellen Sie einen regionalen Zielproxy, um Anfragen an die URL-Zuordnung weiterzuleiten.

    Erstellen Sie einen HTTP-Zielproxy für einen HTTP-Load-Balancer:
        gcloud beta compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
            --url-map=URL_MAP_NAME \
            --region=REGION
        
    Erstellen Sie einen HTTPS-Zielproxy für einen HTTPS-Load-Balancer. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für das HTTPS-Load-Balancing besitzt. Daher laden Sie in diesem Schritt auch Ihr Zertifikat.
        gcloud beta compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
            --ssl-certificates=SSL_CERTIFICATE_NAME \
            --url-map=URL_MAP_NAME \
            --region=REGION
        
  8. Erstellen Sie eine Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten. Für einen HTTP-Load-Balancer:
        gcloud beta compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
            --load-balancing-scheme=EXTERNAL_MANAGED \
            --network-tier=STANDARD \
            --network=lb-network \
            --address=ADDRESS_NAME \
            --target-http-proxy=TARGET_HTTP_PROXY_NAME \
            --target-http-proxy-region=REGION \
            --region=REGION \
            --ports=80
        
    Für einen HTTPS-Load-Balancer:
        gcloud beta compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
            --load-balancing-scheme=EXTERNAL_MANAGED \
            --network-tier=STANDARD \
            --network=lb-network \
            --address=ADDRESS_NAME \
            --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
            --target-https-proxy-region=REGION \
            --region=REGION \
            --ports=443
        

Load-Balancer testen

Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic an die IP-Adresse des Load-Balancers senden.

  1. Öffnen Sie in der Google Cloud Console die Seite "Load-Balancing".
    Gehe zu „Load-Balancing“
  2. Klicken Sie auf den Load-Balancer, den Sie gerade erstellt haben.
  3. Notieren Sie sich seine IP-Adresse.
  4. Bei einem HTTP-Load-Balancer können Sie Ihren Load-Balancer mit einem Webbrowser testen. Rufen Sie dafür http://IP_ADDRESS auf. Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers. Sie sollten zur Startseite des Cloud Run-Dienstes weitergeleitet werden.
  5. Bei einem HTTPS-Load-Balancer können Sie Ihren Load-Balancer mit einem Webbrowser testen. Rufen Sie dafür https://IP_ADDRESS auf. Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers. Sie sollten zur Startseite des Cloud Run-Dienstes weitergeleitet werden.
    Wenn Sie ein selbst signiertes Zertifikat zu Testzwecken genutzt haben, zeigt der Browser eine Warnung an. Sie müssen Ihren Browser ausdrücklich anweisen, ein selbst signiertes Zertifikat zu akzeptieren. Bestätigen Sie die Warnung, um die eigentliche Seite zu sehen.

Zusätzliche Konfigurationsoptionen

In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.

URL-Maske verwenden

Beim Erstellen einer serverlosen NEG können Sie, statt einen bestimmten Cloud Run-Dienst auszuwählen, eine URL-Maske verwenden, um auf mehrere Dienste zu verweisen, die in derselben Domain bereitgestellt werden. Eine URL-Maske ist eine Vorlage für Ihr URL-Schema. Die serverlose NEG verwendet diese Vorlage, um den Dienstnamen aus der URL der eingehenden Anfrage zu extrahieren und die Anfrage dem entsprechenden Dienst zuzuordnen.

URL-Masken sind besonders nützlich, wenn Ihr Dienst einer benutzerdefinierten Domain zugeordnet ist und nicht der Standardadresse, die Google Cloud für den bereitgestellten Dienst angibt. Eine URL-Maske bietet die Möglichkeit, mehrere Dienste und Versionen mit einer einzigen Regel anzusprechen, selbst wenn Ihre Anwendung ein benutzerdefiniertes URL-Muster verwendet.

Falls Sie es noch nicht getan haben, lesen Sie den Abschnitt zu URL-Masken in der Übersicht zu serverlosen NEGs.

URL-Maske erstellen

Wenn Sie eine URL-Maske für Ihren Load-Balancer erstellen möchten, beginnen Sie mit der URL Ihres Dienstes. In diesem Beispiel wird eine serverlose Beispielanwendung verwendet, die unter https://example.com/login ausgeführt wird. Dies ist die URL, unter der der login-Dienst der Anwendung bereitgestellt wird.

  1. Entfernen Sie http oder https aus der URL. Es verbleibt example.com/login.
  2. Ersetzen Sie den Dienstnamen durch einen Platzhalter für die URL-Maske.
    1. Cloud Run: Ersetzen Sie den Namen des Cloud Run-Dienstes durch den Platzhalter <service>. Wenn dem Cloud Run-Dienst ein Tag zugeordnet ist, ersetzen Sie den Namen des Tags durch den Platzhalter <tag>. In diesem Beispiel lautet die URL-Maske example.com/<service>.
  3. Optional: Wenn sich der Dienstname aus dem Pfadabschnitt der URL extrahieren lässt, kann die Domain weggelassen werden. Der Pfadteil der URL-Maske wird durch den ersten Schrägstrich (/) abgetrennt. Wenn in der URL-Maske kein / vorhanden ist, wird die Maske nur für den Host verwendet. Daher kann die URL-Maske in diesem Beispiel auf /<service> reduziert werden.

    Wenn sich der Dienstname aus dem Hostteil der URL extrahieren lässt, können Sie den Pfad in der URL-Maske vollständig weglassen.

    Sie können auch alle Host- oder Subdomain-Komponenten weglassen, die vor dem ersten Platzhalter stehen, sowie alle Pfadkomponenten, die nach dem letzten Platzhalter stehen. In solchen Fällen erfasst der Platzhalter die erforderlichen Informationen für die Komponente.

Hier einige weitere Beispiele zur Veranschaulichung dieser Regeln:

In dieser Tabelle wird davon ausgegangen, dass Sie eine benutzerdefinierte Domain namens example.com haben und alle Ihre Cloud Run-Dienste dieser Domain zugeordnet werden.

Dienst, Tag-Name Benutzerdefinierte Domain-URL in Cloud Run URL-Maske
Dienst: login https://login-home.example.com/web <Dienst>-home.example.com
Dienst: login https://example.com/login/web example.com/<Dienst> oder /<Dienst>
Dienst: login; Tag: test https://test.login.example.com/web <Tag>.<Dienst>.example.com
Dienst: login; Tag: test https://example.com/home/login/test example.com/home/<Dienst>/<Tag> oder /home/<Dienst>/<Tag>
Dienst: login; Tag: test https://test.example.com/home/login/web <Tag>.example.com/home/<Dienst>

Serverlose NEG mit URL-Maske erstellen

Console

Für einen neuen Load-Balancer können Sie den gleichen gesamten End-to-End-Prozess verwenden, wie weiter oben in diesem Thema beschrieben. Geben Sie bei der Konfiguration des Back-End-Dienstes eine URL-Maske ein, statt einen bestimmten Dienst auszuwählen.

Wenn Sie bereits einen Load-Balancer haben, können Sie die Back-End-Konfiguration bearbeiten und die serverlose NEG auf eine URL-Maske statt auf einen bestimmten Dienst verweisen lassen.

So fügen Sie einem vorhandenen Back-End-Dienst eine serverlose NEG hinzu, die auf einer URL-Maske basiert:

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
    Load-Balancing aufrufen
  2. Klicken Sie auf den Namen des Load-Balancers mit dem Back-End-Dienst, den Sie bearbeiten möchten.
  3. Klicken Sie auf der Seite Details zum Load-Balancer auf Bearbeiten .
  4. Klicken Sie auf der Seite HTTP(S)-Load-Balancer bearbeiten auf Back-End-Konfiguration.
  5. Klicken Sie auf der Seite Back-End-Konfiguration für den Back-End-Dienst, den Sie ändern möchten, auf Bearbeiten.
  6. Klicken Sie auf Back-End hinzufügen.
  7. Wählen Sie Serverlose Netzwerk-Endpunktgruppe erstellen aus.
    1. Geben Sie im Feld Name helloworld-serverless-neg ein.
    2. Unter Region wird die Region des Load-Balancers angezeigt.
    3. Unter Typ der Endpunktgruppe für ein serverloses Netzwerk wird Cloud Run angezeigt. Derzeit ist Cloud Run der einzige unterstützte Typ für Netzwerk-Endpunktgruppen.
      1. Wählen Sie URL-Maske verwenden aus.
      2. Geben Sie eine URL-Maske ein. Eine Anleitung zum Erstellen einer URL-Maske finden Sie unter URL-Maske erstellen.
      3. Klicken Sie auf Erstellen.

  8. Klicken Sie im neuen Back-End auf Fertig.
  9. Klicken Sie auf Aktualisieren.

gcloud

So erstellen Sie eine serverlose NEG mit der URL-Beispielmaske example.com/<service>:

gcloud compute network-endpoint-groups create SERVERLESS_NEG_MASK_NAME \
    --region=REGION \
    --network-endpoint-type=serverless \
    --cloud-run-url-mask="example.com/<service>"

Serverlose NEG löschen

Eine Netzwerk-Endpunktgruppe kann nicht gelöscht werden, wenn sie mit einem Back-End-Dienst verknüpft ist. Bevor Sie eine NEG löschen, muss sie vom Back-End-Dienst getrennt sein.

Console

  1. Wechseln Sie zum Tab Back-End-Dienste im Load-Balancing-Komponentenmenü, damit der zu löschende serverlose NEG derzeit von keinem Back-End-Dienst verwendet wird.
    Zu „Back-End-Dienste“
  2. Wenn die serverlose NEG derzeit verwendet wird, gehen Sie so vor:
    1. Klicken Sie mithilfe der serverlosen NEG auf den Namen des Back-End-Dienstes.
    2. Klicken Sie auf Bearbeiten .
    3. Klicken Sie in der Liste der Back-Ends auf , um das serverlose NEG-Back-End aus dem Back-End-Dienst zu entfernen.
    4. Klicken Sie auf Speichern.
  3. Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppe auf.
    Zu „Netzwerk-Endpunktgruppe“
  4. Aktivieren Sie das Kästchen für die serverlose NEG, die Sie löschen möchten.
  5. Klicken Sie auf Löschen.
  6. Klicken Sie zur Bestätigung noch einmal auf Löschen.

gcloud

Um eine serverlose NEG aus einem Back-End-Dienst zu entfernen, müssen Sie die Region angeben, in der die NEG erstellt wurde.

gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=SERVERLESS_NEG_NAME \
    --network-endpoint-group-region=REGION \
    --region=REGION

So löschen Sie die serverlose NEG:

gcloud compute network-endpoint-groups delete SERVERLESS_NEG_NAME \
    --region=REGION

Nächste Schritte