Benutzerdefinierte Domains zuordnen

Sie können anstelle der Standardadresse, die Cloud Run für einen bereitgestellten Dienst bietet, eine benutzerdefinierte Domain einrichten.

Es gibt mehrere Möglichkeiten, um eine benutzerdefinierte Domain für einen Cloud Run-Dienst einzurichten:

Sie können mehrere benutzerdefinierte Domains demselben Cloud Run-Dienst zuordnen.

Hinweis

Falls Sie nicht schon eine neue Domain haben, die Sie verwenden möchten, erwerben Sie eine. Sie können einen beliebigen Domainnamenregistrator verwenden.

Benutzerdefinierte Domain mithilfe eines globalen externen Application Load Balancers zuordnen

Bei dieser Option fügen Sie vor Ihrem Cloud Run-Dienst einen globalen externen Application Load Balancer hinzu und konfigurieren eine benutzerdefinierte Domain auf der Load Balancer-Ebene.

Ein Vorteil der Verwendung eines globalen externen Application Load Balancers besteht darin, dass Sie viel Kontrolle über die Einrichtung Ihrer benutzerdefinierten Domain haben. Sie können beispielsweise Ihr eigenes TLS-Zertifikat verwenden oder bestimmte URL-Pfade zum Cloud Run-Dienst weiterleiten. Außerdem können Sie Cloud CDN für das Caching und Google Cloud Armor für zusätzliche Sicherheit konfigurieren.

Sie können auch mehrere Dienste mithilfe der URL-Masken in Ihrem URL-Muster für benutzerdefinierte Domains für einen einzelnen Load-Balancer wie <service>.example.com zuordnen.

Wenn Sie derzeit keinen globalen externen Application Load Balancer verwenden, können Sie das Integrationen-Feature von Cloud Run verwenden, um schnell einen Load Balancer für Ihren Cloud Run-Dienst einzurichten. Weitere Informationen finden Sie auf der Seite „Integrationen“ für benutzerdefinierte Domains in Cloud Run mit einem globalen externen Application Load Balancer. Wenn Sie bereits einen globalen externen Application Load Balancer verwenden, lesen Sie die Dokumentation zum Einrichten eines globalen externen Application Load Balancers mit Cloud Run. Beachten Sie, dass die Verwendung der Integrationen-Funktion einige vorhandene Load Balancer-Konfigurationen wie die CDN-Aktivierung überschreiben kann.

Benutzerdefinierte Domain mit Firebase Hosting zuordnen

.

Die einfachste Methode, die auch empfohlen wird, um eine benutzerdefinierte Domain mit Firebase Hosting zuzuordnen, ist die Verwendung des Cloud Run-Integrationsfeatures für Firebase Hosting. Wenn Sie das Firebase Hosting-Integrationsfeature nicht verwenden möchten, können Sie alternativ einen manuellen Ansatz zum Konfigurieren von Firebase Hosting verwenden.

Bei dieser Option konfigurieren Sie Firebase Hosting vor Ihrem Cloud Run-Dienst und verbinden eine Konfigurationsdomain mit Firebase Hosting.

Die Verwendung von Firebase Hosting ist kostengünstig und ermöglicht Ihnen, statische Inhalte zusammen mit den von Ihrem Cloud Run-Dienst bereitgestellten dynamischen Inhalten zu hosten und bereitzustellen.

So ordnen Sie eine benutzerdefinierte Domain mithilfe von Firebase Hosting zu:

  1. Firebase zu Ihrem Google Cloud-Projekt hinzufügen
  2. Die Firebase CLI installieren
  3. Erstellen Sie in einem anderen Ordner als dem Quellcode Ihres Dienstes eine Datei firebase.json mit folgendem Inhalt:

      {
        "hosting": {
          "rewrites": [{
            "source": "**",
            "run": {
              "serviceId": "SERVICE_NAME",
              "region": "REGION"
            }
          }]
        }
      }
    

    Ersetzen Sie dabei SERVICE_NAME und REGION durch den Namen und die Region des Cloud Run-Dienstes.

  4. Stellen Sie die Firebase Hosting-Konfiguration bereit:

    firebase deploy --only hosting --project PROJECT_ID
  5. Benutzerdefinierte Domain mit Firebase Hosting verbinden

Weitere Informationen zu Firebase Hosting und Cloud Run

Benutzerdefinierte Domain mit Cloud Run-Domainzuordnung zuordnen (eingeschränkte Verfügbarkeit und Vorschau)

Einschränkungen für die Cloud Run-Domainzuordnung

Die folgenden Überlegungen gelten für Cloud Run-Domainzuordnungen:

  • Cloud Run-Domainzuordnungen befinden sich in der Vorschaustartphase. Aufgrund von Latenzproblemen sind sie nicht produktionsreif und werden nicht für die allgemeine Verfügbarkeit unterstützt. Derzeit wird diese Option für Produktionsdienste nicht empfohlen.
  • Ein von Google verwaltetes Zertifikat wird für HTTPS-Verbindungen automatisch ausgestellt und erneuert, wenn Sie einen Dienst einer benutzerdefinierten Domain zuordnen.
  • Das Bereitstellen des SSL-Zertifikats dauert in der Regel etwa 15 Minuten, kann jedoch bis zu 24 Stunden in Anspruch nehmen.
  • Sie können TLS 1.0 und 1.1 nicht deaktivieren. Wenn dies ein Problem ist, können Sie Firebase Hosting oder Cloud Load Balancing verwenden, um nur Traffic über TLS 1.2 zu aktivieren.
  • Sie können keine eigenen (selbstverwalteten) Zertifikate hochladen und verwenden.
  • Cloud Run-Domainzuordnungen sind auf 64 Zeichen beschränkt.
  • Die Domainzuordnung ist in den folgenden Regionen verfügbar:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • us-central1
    • us-east1
    • us-east4
    • us-west1
  • Wenn Sie benutzerdefinierte Domains in anderen Regionen zuordnen möchten, müssen Sie eine der anderen Zuordnungsoptionen verwenden.
  • Für die Verwendung von Cloud Run-Domainzuordnungen ordnen Sie Ihrem Dienst eine benutzerdefinierte Domain zu und aktualisieren dann Ihre DNS-Einträge.
  • Sie können eine Domain wie example.com oder eine Subdomain wie subdomain.example.com zuordnen.
  • Eine Domain lässt sich nur / zuordnen und nicht einem bestimmten URL-Pfad wie z. B. /users.
  • Mit dieser Funktion können Sie keine Platzhalterzertifikate verwenden.

Benutzerdefinierte Domain einem Dienst zuordnen

Für das Zuordnen einer benutzerdefinierten Domain zu einem Dienst können Sie die Google Cloud Console, die gcloud CLI oder Terraform verwenden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
    Zur Seite „Domainzuordnungen“

    Wenn das Anzeigefenster zu klein ist, wird die Schaltfläche Benutzerdefinierte Domains zuordnen nicht angezeigt. Klicken Sie in diesem Fall auf das Dreipunkt-Menü, um sie einzublenden.

  2. Klicken Sie auf der Seite Domainzuordnung auf Zuordnung hinzufügen.

  3. Wählen Sie aus der Drop-down-Liste des Formulars Zuordnung hinzufügen den Dienst aus, dem Sie die benutzerdefinierte Domain zuordnen möchten:

    Domainzuordnungen hinzufügen

  4. Geben Sie den Namen der Domain ein.

  5. Klicken Sie auf Weiter.

  6. Sie müssen die Inhaberschaft einer Domain bestätigen, bevor Sie sie verwenden können, es sei denn, Sie haben Ihre Domain bei Google erworben. Wenn Sie subdomain.example.com oder subdomain1.subdomain2.example.comzuordnen möchten, sollten Sie die Inhaberschaft von example.com bestätigen. Weitere Informationen zum Bestätigen der Domaininhaberschaft finden Sie in der Search Console-Hilfe.

  7. Aktualisieren Sie die DNS-Einträge auf der Website Ihres Domain-Registrators mithilfe der im letzten Schritt angezeigten DNS-Einträge. Sie können die Einträge jederzeit aufrufen, indem Sie im Aktionsmenü „...“ einer Domainzuordnung auf DNS-Einträge klicken.

  8. Klicken Sie auf Fertig.

Befehlszeile

  1. Sie müssen die Domaininhaberschaft bestätigen, wenn Sie diese Domain zum ersten Mal im Google Cloud-Projekt verwenden, es sei denn, Sie haben Ihre benutzerdefinierte Domain bei Google erworben. Mit dem Befehl können Sie feststellen, ob die zu verwendende benutzerdefinierte Domain bestätigt wurde

    gcloud domains list-user-verified

    Wenn Ihre Inhaberschaft der Domain bestätigt werden muss, öffnen Sie die Bestätigungsseite der Search Console:

    gcloud domains verify BASE-DOMAIN

    Wobei BASE-DOMAIN die Basisdomain ist, die Sie bestätigen möchten. Wenn Sie beispielsweise subdomain.example.com zuordnen möchten, sollten Sie die Inhaberschaft von example.com bestätigen.

    Bestätigen Sie Ihre Domaininhaberschaft in der Search Console. Weitere Informationen finden Sie in der Search Console-Hilfe.

  2. Ordnen Sie Ihren Dienst der benutzerdefinierten Domain zu:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Ersetzen Sie SERVICE durch den Namen des Dienstes.
    • Ersetzen Sie DOMAIN durch Ihre benutzerdefinierte Domain, z. B. example.com oder subdomain.example.com

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie Ihrer vorhandenen main.tf-Datei Folgendes hinzu, um einen Cloud Run-Dienst zu erstellen:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"
  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Ersetzen Sie den Wert für name durch Ihren eigenen Dienstnamen.

Ordnen Sie Ihren Cloud Run-Dienst der benutzerdefinierten Domain zu:

data "google_project" "project" {}

resource "google_cloud_run_domain_mapping" "default" {
  name     = "verified-domain.com"
  location = google_cloud_run_v2_service.default.location
  metadata {
    namespace = data.google_project.project.project_id
  }
  spec {
    route_name = google_cloud_run_v2_service.default.name
  }
}

Ersetzen Sie verified-domain.com mit Ihrer benutzerdefinierten bestätigten Domain, z. B. example.com oder subdomain.example.com

DNS-Einträge im Domain-Registrator hinzufügen

Nachdem Sie Ihren Dienst einer benutzerdefinierten Domain in Cloud Run zugeordnet haben, müssen Sie die DNS-Einträge bei Ihrem Domain-Registrator aktualisieren. Cloud Run generiert automatisch die DNS-Einträge, die Sie eingeben müssen, und zeigt diese an. Sie müssen diese Einträge, die auf den Cloud Run-Dienst verweisen, im Domain-Registrator hinzufügen, damit die Zuordnung wirksam wird.

Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Eintrag hinzufügen.

  1. Rufen Sie die DNS-Eintragsinformationen für die Domainzuordnung auf eine der folgenden Arten ab:

    Console

    1. Rufen Sie die Cloud Run-Seite "Domainzuordnungen" auf:
      Seite "Domainzuordnungen"

    2. Klicken Sie auf das Dreipunkt-Menü rechts neben Ihrem Dienst und dann auf DNS-EINTRÄGE, um alle DNS-Einträge aufzurufen:

    DNS-Einträge auswählen

    Befehlszeile

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    Ersetzen Sie [DOMAIN] durch Ihre benutzerdefinierte Domain, z. B. example.com oder subdomain.example.com.

    Sie benötigen alle Datensätze, die unter der Überschrift resourceRecords zurückgegeben werden.

  2. Melden Sie sich bei Ihrem Domain-Registrator in Ihrem Konto an und öffnen Sie dann die DNS-Konfigurationsseite.

  3. Suchen Sie auf der Konfigurationsseite der Domain den Abschnitt mit den Hosteinträgen und fügen Sie die einzelnen Ressourceneinträge hinzu, die Sie bei der Zuordnung der Domain zu Ihrem Cloud Run-Dienst erhalten haben.

  4. Wenn Sie dem Konto bei Ihrem DNS-Anbieter jeden der oben genannten DNS-Einträge hinzufügen,

    • wählen Sie den Typ aus, der im vorherigen Schritt im DNS-Eintrag zurückgegeben wurde: A, AAAA oder CNAME.
    • Verwenden Sie den Namen www, um www.example.com zuzuordnen.
    • Verwenden Sie den Namen @, um example.com zuzuordnen.
  5. Speichern Sie die Änderungen auf der DNS-Konfigurationsseite des Kontos Ihrer Domain. In den meisten Fällen dauert es nur ein paar Minuten, bis diese Änderungen wirksam werden. In manchen Fällen kann es aber auch mehrere Stunden dauern, je nach Registrator und Gültigkeitsdauer (TTL) aller früheren DNS-Einträge für Ihre Domain. Sie können das dig-Tool, z. B. diese dig-Onlineversion, verwenden, um zu bestätigen, dass die DNS-Einträge erfolgreich aktualisiert wurden.

  6. Prüfen Sie, ob der Vorgang erfolgreich war. Dazu rufen Sie den Dienst über die neue URL auf (z. B. https://www.example.com). Beachten Sie, dass es mehrere Minuten dauern kann, bis das verwaltete SSL-Zertifikat ausgestellt wird.

Bestätigte Domaininhaber zu anderen Nutzern oder Dienstkonten hinzufügen

Wenn ein Nutzer die Inhaberschaft für eine Domain bestätigt, wird sie nur für das Konto dieses Nutzers bestätigt. Dies bedeutet, dass nur jener Nutzer weitere Domainzuordnungen einfügen kann, die diese Domain verwenden. Damit auch andere Nutzer Zuordnungen einfügen können, die diese Domain verwenden, müssen Sie diese Nutzer als verifizierte Inhaber hinzufügen.

Wenn Sie vorhandene Nutzer oder Dienstkonten zu bestätigten Inhabern der Domain erklären möchten, können Sie diese Berechtigung über die Seite Search Console hinzufügen:

  1. Rufen Sie in Ihrem Webbrowser diese Adresse auf:

    https://search.google.com/search-console/welcome

  2. Klicken Sie unter Attribute auf die Domain, für die Sie einen Nutzer oder ein Dienstkonto einfügen möchten.

  3. Scrollen Sie nach unten zur Liste Bestätigte Inhaber, klicken Sie auf Inhaber hinzufügen und geben Sie dann die E-Mail-Adresse oder Dienstkonto-ID eines Google-Kontos ein.

    Öffnen Sie in der Google Cloud Console die Seite „Dienstkonten“, um eine Liste der Dienstkonten anzusehen:

    Zur Seite „Dienstkonten“

Cloud Run-Domainzuordnung löschen

Sie können die Google Cloud Console oder die gcloud-Befehlszeile verwenden, um eine Domainzuordnung zu löschen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
    Zur Seite „Domainzuordnungen“

  2. Wählen Sie auf der Seite Domainzuordnung die Domainzuordnung aus, die Sie löschen möchten, und klicken Sie auf Löschen.

Befehlszeile

  1. Löschen Sie die Domainzuordnung:

    gcloud beta run domain-mappings delete --domain DOMAIN
    • Ersetzen Sie DOMAIN durch Ihre benutzerdefinierte Domain, z. B. example.com oder subdomain.example.com

Benutzerdefinierte Domains mit authentifizierten Diensten verwenden

Authentifizierte Dienste sind durch IAM geschützt. Solche Cloud Run-Dienste erfordern eine Clientauthentifizierung, die den vorgesehenen Empfänger einer Anfrage zum Zeitpunkt der Erstellung von Anmeldedaten deklariert (die Zielgruppe).

Das Ziel ist in der Regel die vollständige URL des Zieldienstes, die für Cloud Run-Dienste standardmäßig eine generierte URL ist, die auf run.app endet. Wenn Sie jedoch eine benutzerdefinierte Domain verwenden, sollten Sie diese automatisch generierte run.app-URL nicht als Zielgruppe verwenden. Konfigurieren Sie stattdessen den Dienst für eine benutzerdefinierte Zielgruppe, sodass Ihre benutzerdefinierte Domain als gültige Authentifizierungszielgruppe akzeptiert wird.

Nächste Schritte

  • Informationen zum Einrichten einer benutzerdefinierten Domain für Cloud Run mithilfe eines globalen externen Application Load Balancers mit Terraform finden Sie in diesem Beispielcode.