Auf dieser Seite wird beschrieben, wie Sie Container-Images in einem neuen Cloud Run-Dienst oder einer neuen Überarbeitung eines vorhandenen Cloud Run-Dienstes bereitstellen.
Für das Deployment erforderliche Berechtigungen
Sie benötigen EINES von Folgendem:
- Inhaber
- Bearbeiter
- Sowohl die Rolle Cloud Run-Administrator als auch die Rolle Dienstkontonutzer,
- Jede benutzerdefinierte Rolle, die diese bestimmte Liste von Berechtigungen enthält.
Unterstützte Container Registries und Images
Sie können in Container Registry oder Artifact Registry gespeicherte Container-Images verwenden. Google empfiehlt die Verwendung von Artifact Registry anstelle von Container Registry.
Sie können nur die folgenden Arten von Container-Images verwenden:
- Container-Images, die im selben Projekt gespeichert sind, in dem Sie den Job oder Dienst erstellen.
- Container-Images aus anderen Google Cloud-Projekten (sofern die richtigen IAM-Berechtigungen festgelegt sind)
- Öffentliche Container-Images von Container Registry oder Artifact Registry.
Wenn Sie Container-Images in einem anderen Typ von Container Registry speichern, folgen Sie der Anleitung unter Images aus nicht unterstützten Registries bereitstellen.
Neuen Dienst bereitstellen
Sie können ein Container-Image mit einem Tag (z. B. us-docker.pkg.dev/my-project/container/my-image:latest
) oder mit einem genauen Digest (z. B. us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...
) angeben.
Wenn Sie einen Dienst zum ersten Mal bereitstellen, wird die erste Überarbeitung erstellt. Überarbeitungen können nach der Erstellung nicht mehr geändert werden. Wenn Sie den Dienst aus einem Container-Image-Tag bereitstellen, wird er in einen Digest aufgelöst. Die Überarbeitung bedient anschließend immer diesen speziellen Digest.
Sie können einen Container über die Google Cloud Console, die gcloud
-Befehlszeile oder eine YAML-Konfigurationsdatei bereitstellen.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Console
So stellen Sie ein Container-Image bereit:
Klicken Sie auf Dienst erstellen, um das Formular Dienst erstellen aufzurufen.
Wählen Sie im Formular die Bereitstellungsoption aus:
Wenn Sie einen Container manuell bereitstellen möchten, wählen Sie Eine Überarbeitung aus dem vorhandenen Container-Image bereitstellen aus und geben Sie das Container-Image an.
Wenn Sie die kontinuierliche Bereitstellung automatisieren möchten, wählen Sie Kontinuierlich neue Überarbeitungen aus einem Quell-Repository bereitstellen aus und folgen Sie der Anleitung für kontinuierliche Bereitstellungen.
Geben Sie den gewünschten Dienstnamen ein. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen. Ein Dienstname kann später nicht mehr geändert werden und ist öffentlich sichtbar.
Wählen Sie die Region aus, in der sich Ihr Dienst befinden soll. Die Regionsauswahl gibt die Preisstufe, die Verfügbarkeit von Domainzuordnungen an und hebt Regionen mit den niedrigsten CO2-Auswirkungen hervor.
Legen Sie CPU-Zuweisung und -Preise nach Bedarf fest.
Geben Sie unter Autoscaling die minimale und die maximale Anzahl an Instanzen an.
Legen Sie die Ingress-Einstellungen wie gewünscht im Formular fest.
Unter Authentifizierung:
- Wenn Sie eine öffentliche API oder Website erstellen, wählen Sie Nicht authentifizierte Aufrufe zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung
allUser
die Rolle "IAM-Invoker" zugewiesen. Sie können die Einstellung mit IAM bearbeiten, nachdem Sie den Dienst erstellt haben. - Wenn Sie einen durch Authentifizierung geschützten sicheren Dienst wünschen, wählen Sie Authentifizierung erforderlich aus.
- Wenn Sie eine öffentliche API oder Website erstellen, wählen Sie Nicht authentifizierte Aufrufe zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung
Klicken Sie auf Container, Verbindungen, Sicherheit, um weitere optionale Einstellungen in den entsprechenden Tabs festzulegen:
Wenn Sie die Konfiguration Ihres Dienstes abgeschlossen haben, klicken Sie auf Erstellen, um das Image in Cloud Run bereitzustellen. Warten Sie, bis das Deployment abgeschlossen ist.
Klicken Sie auf den angezeigten URL-Link, um den nur einmal vorkommenden und stabilen Endpunkt des bereitgestellten Dienstes zu öffnen.
Befehlszeile
So stellen Sie ein Container-Image bereit:
Führen Sie diesen Befehl aus:
gcloud run deploy SERVICE --image IMAGE_URL
- Ersetzen Sie SERVICE durch den Namen des Dienstes, für den Sie die Bereitstellung vornehmen möchten. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen. Wenn der Dienst noch nicht vorhanden ist, erstellt dieser Befehl den Dienst während der Bereitstellung. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Dienstnamen gefragt.
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie das Flag--image
nicht angeben, wird mit dem Bereitstellungsbefehl versucht, aus dem Quellcode bereitzustellen.Wenn Sie eine öffentliche API oder Website erstellen, können Sie mit dem Flag
--allow-unauthenticated
nicht authentifizierte Aufrufe zulassen. Dadurch wirdallUsers
die IAM-Rolle Cloud Run Invoker zugewiesen. Sie können auch--no-allow-unauthenticated
angeben, um keine nicht authentifizierten Aufrufe zuzuzulassen. Wenn Sie keines dieser Flags angeben, werden Sie aufgefordert, zu bestätigen, ob nicht authentifizierte Aufrufe zugelassen werden sollen, wenn der Befehldeploy
ausgeführt wird.
Warten Sie, bis die Bereitstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Bestätigung zusammen mit der URL des bereitgestellten Dienstes angezeigt.
Wenn Sie an einem anderen Standort bereitstellen möchten, als Sie in den gcloud
-Attributen run/region
angegeben haben, verwenden Sie Folgendes:
gcloud run deploy SERVICE --region REGION
YAML
Sie können Ihre Dienstspezifikation in einer YAML
-Datei speichern und dann mit der gcloud CLI bereitstellen.
Erstellen Sie eine neue
service.yaml
-Datei mit folgendem Inhalt:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Ersetzen
- SERVICE durch den Namen Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
- IMAGE durch die URL Ihres Container-Images
Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.
Stellen Sie den neuen Dienst mit dem folgenden Befehl bereit:
gcloud run services replace service.yaml
Optional: Veröffentlichen Sie Ihren Dienst, wenn Sie den nicht authentifizierten Zugriff auf den Dienst zulassen möchten.
Cloud Code
Lesen Sie für die Bereitstellung mit Cloud Code die Anleitungen zu IntelliJ und Visual Studio Code.
Terraform
Wenn Sie Terraform verwenden, können Sie den Dienst in einer Terraform-Konfiguration definieren. Dabei verwenden Sie die Ressource google_cloud_run_service
des Google Cloud Platform-Anbieters.
Erstellen Sie eine neue
main.tf
-Datei mit dem folgendem Inhalt:provider "google" { project = "PROJECT-ID" } resource "google_cloud_run_service" "default" { name = "SERVICE" location = "REGION" metadata { annotations = { "run.googleapis.com/client-name" = "terraform" } } template { spec { containers { image = "IMAGE" } } } } data "google_iam_policy" "noauth" { binding { role = "roles/run.invoker" members = ["allUsers"] } } resource "google_cloud_run_service_iam_policy" "noauth" { location = google_cloud_run_service.default.location project = google_cloud_run_service.default.project service = google_cloud_run_service.default.name policy_data = data.google_iam_policy.noauth.policy_data }
Ersetzen
- PROJECT-ID durch die Google Cloud-Projekt-ID
- REGION durch die Google Cloud-Region
- SERVICE durch den Namen Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
- IMAGE durch die URL Ihres Container-Images
Die oben genannte Konfiguration lässt öffentlichen Zugriff zu (entspricht
--allow-unauthenticated
). Wenn Sie den Dienst privat machen möchten, entfernen Sie die Absätzegoogle_iam_policy
undgoogle_cloud_run_service_iam_policy
.Initialisieren Sie Terraform:
terraform init
Wenden Sie die Terraform-Konfiguration an:
terraform apply
Bestätigen Sie, dass Sie die beschriebenen Aktionen anwenden möchten, indem Sie
yes
eingeben.
Cloud Run-Standorte
Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.
Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden.
Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten liegt, aber Sie sollten den Standort der anderen Google Cloud-Produkte berücksichtigen, die von Ihrem Cloud Run-Dienst verwendet werden.
Die gemeinsame Nutzung von Google Cloud-Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.
Cloud Run ist in diesen Regionen verfügbar:
Unterliegt Preisstufe 1
asia-east1
(Taiwan)asia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finnland)Niedriger CO2-Wert
europe-southwest1
(Madrid)Niedriger CO2-Ausstoß
europe-west1
(Belgien)Niedriger CO2-Ausstoß
europe-west4
(Niederlande)europe-west8
(Mailand)europe-west9
(Paris)Niedriger CO2-Ausstoß
me-west1
(Tel Aviv)us-central1
(Iowa)Niedriger CO2-Ausstoß
us-east1
(South Carolina)us-east4
(Northern Virginia)us-east5
(Columbus)us-south1
(Dallas)us-west1
(Oregon)Niedriger CO2-Ausstoß
Unterliegt Preisstufe 2
asia-east2
(Hongkong)asia-northeast3
(Seoul, Südkorea)asia-southeast1
(Singapur)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Indien)asia-south2
(Delhi, Indien)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warschau, Polen)europe-west2
(London, Vereinigtes Königreich)europe-west3
(Frankfurt, Deutschland)europe-west6
(Zürich, Schweiz)Niedriger CO2-Ausstoß
northamerica-northeast1
(Montreal)Niedriger CO2-Ausstoß
northamerica-northeast2
(Toronto)Niedriger CO2-Ausstoß
southamerica-east1
(Sao Paulo, Brasilien)Niedriger CO2-Ausstoß
southamerica-west1
(Santiago, Chile)us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie dessen Region im Cloud Run-Dashboard der Google Cloud Console aufrufen.
Beim Bereitstellen muss der Dienst-Agent von Cloud Run auf den bereitgestellten Container zugreifen können, was standardmäßig der Fall ist.
Jeder Dienst hat eine eindeutige und permanente URL, die sich im Laufe der Zeit nicht ändert, wenn Sie neue Überarbeitungen bereitstellen.
Neue Überarbeitung eines vorhandenen Dienstes bereitstellen
Sie können eine neue Überarbeitung über die Google Cloud Console, die gcloud
-Befehlszeile oder eine YAML-Konfigurationsdatei bereitstellen.
Beachten Sie, dass beim Ändern von Konfigurationseinstellungen eine neue Überarbeitung erstellt wird, auch wenn das Container-Image nicht geändert wird. Überarbeitungen können nach der Erstellung nicht mehr geändert werden.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Console
So stellen Sie eine neue Überarbeitung eines vorhandenen Dienstes bereit:
Klicken Sie in der Übersicht auf den zu aktualisierenden Dienst, um dessen Details anzuzeigen.
Klicken Sie auf NEUE ÜBERARBEITUNG BEARBEITEN UND BEREITSTELLEN, um das Formular für die Bereitstellung der Überarbeitung aufzurufen.
Geben Sie bei Bedarf die URL des neu bereitzustellenden Container-Images an.
Konfigurieren Sie den Container nach Bedarf.
Legen Sie CPU-Zuweisung und -Preise nach Bedarf fest.
Geben Sie unter „Kapazität” Speicherlimits und CPU-Limits an.
Geben Sie nach Bedarf Zeitlimit für Anfragen und Gleichzeitigkeit an.
Geben Sie nach Bedarf die Ausführungsumgebung an.
Geben Sie unter Autoscaling die minimale und die maximale Anzahl an Instanzen an.
Verwenden Sie nach Bedarf die anderen Tabs, um Folgendes zu konfigurieren:
Um den gesamten Traffic an die neue Überarbeitung zu senden, aktivieren Sie das Kästchen Diese Überarbeitung sofort bereitstellen. Wenn Sie eine neue Überarbeitung nach und nach einführen möchten, entfernen Sie das Häkchen aus diesem Kästchen. Dadurch erhalten Sie eine Bereitstellung, bei der kein Traffic an die neue Überarbeitung gesendet wird. Folgen Sie der Anleitung für schrittweise Einführungen nach der Bereitstellung.
Klicken Sie auf BEREITSTELLEN und warten Sie, bis die Bereitstellung abgeschlossen ist.
Befehlszeile
Um die Befehlszeile zu verwenden, müssen Sie bereits die gcloud-CLI eingerichtet haben.
So stellen Sie ein Container-Image bereit:
Führen Sie diesen Befehl aus:
gcloud run deploy SERVICE --image IMAGE_URL
- Ersetzen Sie SERVICE durch den Namen des für die Bereitstellung verwendeten Dienstes. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Dienstnamen gefragt.
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
.Das Überarbeitungssuffix wird neuen Überarbeitungen automatisch zugewiesen. Wenn Sie Ihr eigenes Überarbeitungssuffix angeben möchten, verwenden Sie den gcloud CLI-Parameter --revision-suffix.
Warten Sie, bis die Bereitstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Bestätigung zusammen mit der URL des bereitgestellten Dienstes angezeigt.
YAML
Wenn Sie die Konfiguration eines vorhandenen Dienstes herunterladen oder aufrufen müssen, speichern Sie die Ergebnisse mit dem folgenden Befehl in einer YAML-Datei:
gcloud run services describe SERVICE --format export > service.yaml
Ändern Sie in einer YAML-Dienstkonfigurationsdatei alle untergeordneten spec.template
-Attribute wie gewünscht, um die Überarbeitungseinstellungen zu aktualisieren, und stellen Sie dann die neue Überarbeitung bereit:
gcloud run services replace service.yaml
Cloud Code
Weitere Informationen zum Bereitstellen einer neuen Version eines vorhandenen Dienstes mit Cloud Code finden Sie in den Anleitungen zu IntelliJ und Visual Studio Code.
Terraform
Sie müssen Terraform bereits gemäß dem Beispiel Neuen Dienst bereitstellen eingerichtet haben.
Nehmen Sie eine Änderung an der Konfigurationsdatei vor.
Wenden Sie die Terraform-Konfiguration an:
terraform apply
Bestätigen Sie, dass Sie die beschriebenen Aktionen anwenden möchten, indem Sie
yes
eingeben.
Cloud Run-Standorte
Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.
Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden.
Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten liegt, aber Sie sollten den Standort der anderen Google Cloud-Produkte berücksichtigen, die von Ihrem Cloud Run-Dienst verwendet werden.
Die gemeinsame Nutzung von Google Cloud-Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.
Cloud Run ist in diesen Regionen verfügbar:
Unterliegt Preisstufe 1
asia-east1
(Taiwan)asia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finnland)Niedriger CO2-Wert
europe-southwest1
(Madrid)Niedriger CO2-Ausstoß
europe-west1
(Belgien)Niedriger CO2-Ausstoß
europe-west4
(Niederlande)europe-west8
(Mailand)europe-west9
(Paris)Niedriger CO2-Ausstoß
me-west1
(Tel Aviv)us-central1
(Iowa)Niedriger CO2-Ausstoß
us-east1
(South Carolina)us-east4
(Northern Virginia)us-east5
(Columbus)us-south1
(Dallas)us-west1
(Oregon)Niedriger CO2-Ausstoß
Unterliegt Preisstufe 2
asia-east2
(Hongkong)asia-northeast3
(Seoul, Südkorea)asia-southeast1
(Singapur)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Indien)asia-south2
(Delhi, Indien)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warschau, Polen)europe-west2
(London, Vereinigtes Königreich)europe-west3
(Frankfurt, Deutschland)europe-west6
(Zürich, Schweiz)Niedriger CO2-Ausstoß
northamerica-northeast1
(Montreal)Niedriger CO2-Ausstoß
northamerica-northeast2
(Toronto)Niedriger CO2-Ausstoß
southamerica-east1
(Sao Paulo, Brasilien)Niedriger CO2-Ausstoß
southamerica-west1
(Santiago, Chile)us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie dessen Region im Cloud Run-Dashboard der Google Cloud Console aufrufen.
Images aus anderen Google Cloud-Projekten bereitstellen
Sie können Container-Images aus anderen Google Cloud-Projekten bereitstellen, wenn Sie die richtigen IAM-Berechtigungen festlegen:
Öffnen Sie in der Google Cloud Console das Projekt für Ihren Cloud Run-Dienst.
Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen hinzufügen.
Kopieren Sie die E-Mail des Cloud Run-Dienst-Agents. Sie hat das Suffix @serverless-robot-prod.iam.gserviceaccount.com
Öffnen Sie das Projekt mit der gewünschten Container Registry.
Klicken Sie auf Hinzufügen, um ein neues Hauptkonto hinzuzufügen.
Fügen Sie in das Textfeld Neue Hauptkonten die zuvor kopierte E-Mail-Adresse des Dienstkontos ein.
Wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle Storage -> Storage-Objekt-Betrachter aus, wenn Sie Container Registry verwenden. Wenn Sie Artifact Registry verwenden, wählen Sie die Rolle Artifact Registry -> Artifact Registry-Leser aus.
Stellen Sie das Container-Image für das Projekt bereit, das den Cloud Run-Dienst enthält.
Images aus nicht unterstützten Registries bereitstellen
Wenn Sie Container-Images in einer nicht unterstützten öffentlichen oder privaten Container Registry speichern, können Sie diese vorübergehend mit docker push
in Artifact Registry übertragen, um sie in Cloud Run bereitzustellen.
Das Container-Image wird von Cloud Run importiert, wenn es bereitgestellt wird. Nach der Bereitstellung können Sie das Image also aus Artifact Registry löschen.
Nächste Schritte
Nachdem Sie einen neuen Dienst bereitgestellt haben, können Sie Folgendes tun:
- Schrittweise Rollouts, Rollback für Überarbeitungen, Traffic-Migration
- Dienstlogs ansehen
- Leistung von Diensten überwachen
- Speicherlimits festlegen
- Umgebungsvariablen festlegen
- Gleichzeitigkeit von Diensten ändern
- Dienste verwalten
- Dienstüberarbeitungen verwalten
- Nur vertrauenswürdige Images mit Binärautorisierung bereitstellen (Vorschau)
Mithilfe von Cloud Build-Triggern können Sie die Builds und Bereitstellungen Ihrer Cloud Run-Dienste automatisieren.
Sie können auch Google Cloud Deploy verwenden, um eine Continuous Delivery-Pipeline einzurichten, um Cloud Run-Dienste in mehreren Umgebungen bereitzustellen: