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, 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 einem dynamischen Hostnamen mithilfe der URL-Masken in Ihrem URL-Muster für benutzerdefinierte Domains für einen einzelnen Load-Balancer wie <service>.example.com zuordnen.

Weitere Informationen finden Sie in der Dokumentation zum Einrichten eines globalen externen Application Load Balancers mit Cloud Run.

Benutzerdefinierte Domain mit Firebase Hosting zuordnen

.

Bei dieser Option konfigurieren Sie Firebase Hosting vor Ihrem Cloud Run-Dienst und verbinden eine Domain 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. Fügen Sie Firebase zu Ihrem Google Cloud-Projekt hinzu.
  2. Installieren Sie die Firebase CLI.
  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. Verbinden Sie eine benutzerdefinierte Domain mit Firebase Hosting.

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“

  2. Klicken Sie auf Zuordnung hinzufügen.

    Wenn das Anzeigefenster zu klein ist, wird die Schaltfläche Zuordnung hinzufügen nicht angezeigt. Klicken Sie in diesem Fall rechts oben auf der Seite auf das Dreipunkt-Menü, um sie einzublenden.

  3. Wählen Sie in der Drop-down-Liste den Dienst aus, dem Sie die benutzerdefinierte Domain zuordnen möchten.

  4. Wählen Sie Cloud Run-Domainzuordnungen aus.

  5. Wählen Sie im Formular Zuordnung hinzufügen die Option Neue Domain bestätigen aus.

  6. Im Feld Zu bestätigende Basisdomain müssen Sie 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.com zuordnen möchten, müssen Sie die Inhaberschaft von example.com bestätigen. Weitere Informationen zum Bestätigen der Domaininhaberschaft finden Sie in der Search Console-Hilfe.

  7. Klicken Sie auf Weiter.

  8. Klicken Sie nach Abschluss der Domainbestätigung auf Bestätigung fortsetzen und schließen.

  9. 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.

  10. Klicken Sie auf Fertig.

gcloud

  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 folgenden 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, müssen 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     = "custom-domain"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  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 durch Ihre benutzerdefinierte bestätigte 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. Zur Vereinfachung werden die von Ihnen einzugebenden DNS-Einträge von Cloud Run generiert und angezeigt. 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

    gcloud

    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 ein dig-Tool, z. B. die 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). Es kann einige Minuten dauern, 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 andere 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 die folgende Adresse auf:

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

  2. Klicken Sie unter Attribute auf die Domain, der Sie einen Nutzer oder ein Dienstkonto hinzufü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 CLI verwenden, um eine Domainzuordnung zu löschen.

Console

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

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

gcloud

  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, dürfen 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.