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:
- Globalen externen Application Load Balancer verwenden (empfohlen)
- Firebase Hosting verwenden
- Cloud Run-Domainzuordnung (eingeschränkte Verfügbarkeit und Vorschau) verwenden
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:
- Fügen Sie Ihrem Google Cloud Projekt Firebase hinzu.
- Installieren Sie die Firebase CLI.
Erstellen Sie in einem anderen Ordner als dem Quellcode Ihres Dienstes eine Datei
firebase.jsonmit 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.
Stellen Sie die Firebase Hosting-Konfiguration bereit:
firebase deploy --only hosting --project PROJECT_ID
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-east1asia-northeast1asia-southeast1europe-north1europe-west1europe-west4us-central1us-east1us-east4us-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.comoder eine Subdomain wiesubdomain.example.comzuordnen. - 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.
Konsole
Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
Seite „Domainzuordnungen“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.
Wählen Sie aus der Drop-down-Liste den Dienst aus, dem Sie die benutzerdefinierte Domain zuordnen möchten.
Wählen Sie Cloud Run-Domainzuordnungen aus.
Wählen Sie im Formular Zuordnung hinzufügen die Option Neue Domain bestätigen aus.
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.comodersubdomain1.subdomain2.example.comzuordnen möchten, müssen Sie die Inhaberschaft vonexample.combestätigen. Weitere Informationen zum Bestätigen der Domaininhaberschaft finden Sie in der Search Console-Hilfe.Klicken Sie auf Weiter.
Klicken Sie nach Abschluss der Domainbestätigung auf Bestätigung fortsetzen und schließen.
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.
Klicken Sie auf Fertig.
gcloud
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-DOMAINdie Basisdomain ist, die Sie bestätigen möchten. Wenn Sie beispielsweisesubdomain.example.comzuordnen möchten, müssen Sie die Inhaberschaft vonexample.combestätigen.Bestätigen Sie Ihre Domaininhaberschaft in der Search Console. Weitere Informationen finden Sie in der Search Console-Hilfe.
Ordnen Sie Ihren Dienst der benutzerdefinierten Domain zu:
gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
- Ersetzen Sie
SERVICEdurch den Namen des Dienstes. - Ersetzen Sie
DOMAINdurch Ihre benutzerdefinierte Domain, z. B.example.comodersubdomain.example.com
- Ersetzen Sie
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:
Ersetzen Sie:
custom-domaindurch den Namen Ihres Cloud Run-Dienstes.us-docker.pkg.dev/cloudrun/container/hellodurch einen Verweis auf Ihr Container-Image. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Ordnen Sie Ihren Cloud Run-Dienst der benutzerdefinierten Domain zu:
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. 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.
Rufen Sie die DNS-Eintragsinformationen für Ihre Domainzuordnungen auf eine der folgenden Arten ab:
Console
Rufen Sie die Cloud Run-Seite "Domainzuordnungen" auf:
Seite "Domainzuordnungen"Klicken Sie auf das Dreipunkt-Menü rechts neben Ihrem Dienst und dann auf DNS-EINTRÄGE, um alle DNS-Einträge aufzurufen:
gcloud
gcloud beta run domain-mappings describe --domain [DOMAIN]
Ersetzen Sie
[DOMAIN]durch Ihre benutzerdefinierte Domain, z. B.example.comodersubdomain.example.com.Sie benötigen alle Datensätze, die unter der Überschrift
resourceRecordszurückgegeben werden.Melden Sie sich bei Ihrem Domain-Registrator in Ihrem Konto an und öffnen Sie dann die DNS-Konfigurationsseite.
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.
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,AAAAoderCNAME. - Verwenden Sie den Namen
www, umwww.example.comzuzuordnen. - Verwenden Sie den Namen
@, umexample.comzuzuordnen.
- wählen Sie den Typ aus, der im vorherigen Schritt im DNS-Eintrag zurückgegeben wurde:
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. diedig-Onlineversion, verwenden, um zu bestätigen, dass die DNS-Einträge erfolgreich aktualisiert wurden.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 mehrere 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:
Rufen Sie in Ihrem Webbrowser die folgende Adresse auf:
Klicken Sie unter Properties auf die Domain, der Sie einen Nutzer oder ein Dienstkonto hinzufügen möchten.
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:
Cloud Run-Domainzuordnung löschen
Sie können die Google Cloud Konsole oder die gcloud CLI verwenden, um eine Domainzuordnung zu löschen.
Konsole
Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
Seite „Domainzuordnungen“Wählen Sie auf der Seite Domainzuordnungen die Domainzuordnung aus, die Sie löschen möchten, und klicken Sie auf Löschen.
gcloud
Löschen Sie die Domainzuordnung:
gcloud beta run domain-mappings delete --domain DOMAIN
- Ersetzen Sie
DOMAINdurch Ihre benutzerdefinierte Domain, z. B.example.comodersubdomain.example.com
- Ersetzen Sie
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, können Sie eine benutzerdefinierte Zielgruppe konfigurieren, damit Ihr Dienst Ihre benutzerdefinierte Domain als gültige Zielgruppe akzeptiert.
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.