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)
- Cloud Run-Integrationsfeature für Firebase Hosting (die einfachste Möglichkeit, Firebase Hosting zu verwenden) verwenden
- Firebase Hosting mit manueller Konfiguration verwenden (wenn Sie die Integrationsfunktion nicht verwenden möchten)
- 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 mithilfe der URL-Masken in Ihrem URL-Muster für benutzerdefinierte Domains für einen einzelnen Load-Balancer wie <service>.example.com
zuordnen.
Cloud Run-Integrationen verwenden
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.
Globalen externen Application Load Balancer direkt verwenden
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
.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.
Cloud Run-Integration verwenden
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.
firebase.json
verwenden
Wenn Sie das Firebase Hosting-Integrationsfeature nicht verwenden möchten, können Sie alternativ einen manuellen Ansatz zum Konfigurieren von Firebase Hosting verwenden.
So ordnen Sie eine benutzerdefinierte Domain mithilfe von Firebase Hosting manuell zu:
- Firebase zu Ihrem Google Cloud-Projekt hinzufügen
- Die Firebase CLI installieren
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.
Stellen Sie die Firebase Hosting-Konfiguration bereit:
firebase deploy --only hosting --project PROJECT_ID
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 wiesubdomain.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
Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
Zur 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 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.
Abhängig von der Region, die für den ausgewählten Dienst festgelegt ist, zeigt das Formular die verfügbaren Optionen zum Hinzufügen einer benutzerdefinierten Domain an:
- Firebase Hosting mit Cloud Run-Integrationen
- Benutzerdefinierte Domains – Google Cloud Load Balancing mit Cloud Run-Integrationen
- Cloud Run-Domainzuordnungen
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 von Google erworben.
Wenn Sie
subdomain.example.com
odersubdomain1.subdomain2.example.com
zuordnen möchten, sollten Sie die Inhaberschaft vonexample.com
bestä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 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 in der Search Console:
gcloud domains verify BASE-DOMAIN
Wobei
BASE-DOMAIN
die Basisdomain ist, die Sie bestätigen möchten. Wenn Sie beispielsweisesubdomain.example.com
zuordnen möchten, sollten Sie die Inhaberschaft vonexample.com
bestä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
SERVICE
durch den Namen des Dienstes. - Ersetzen Sie
DOMAIN
durch Ihre benutzerdefinierte Domain, z. B.example.com
odersubdomain.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 den Wert für name
durch Ihren eigenen Dienstnamen.
Ordnen Sie Ihren Cloud Run-Dienst der benutzerdefinierten Domain zu:
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.
Rufen Sie die DNS-Eintragsinformationen für die Domainzuordnung 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.com
odersubdomain.example.com
.Sie benötigen alle Datensätze, die unter der Überschrift
resourceRecords
zurü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
,AAAA
oderCNAME
. - Verwenden Sie den Namen
www
, umwww.example.com
zuzuordnen. - Verwenden Sie den Namen
@
, umexample.com
zuzuordnen.
- 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 das
dig
-Tool, z. B. diesedig
-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
). 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:
Rufen Sie in Ihrem Webbrowser diese Adresse auf:
Klicken Sie unter Attribute auf die Domain, für die Sie einen Nutzer oder ein Dienstkonto einfü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 Console oder die gcloud
-Befehlszeile verwenden, um eine Domainzuordnung zu löschen.
Console
Rufen Sie in der Google Cloud Console die Seite „Domainzuordnungen“ auf:
Zur Seite „Domainzuordnungen“Wählen Sie auf der Seite Domainzuordnung 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
DOMAIN
durch Ihre benutzerdefinierte Domain, z. B.example.com
odersubdomain.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, 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.