Auf dieser Seite wird beschrieben, wie Sie Container-Images für einen neuen Cloud Run-Dienst oder eine neue Überarbeitung eines vorhandenen Cloud Run-Dienstes bereitstellen.
Das Container-Image wird von Cloud Run importiert, wenn es bereitgestellt wird. Cloud Run behält diese Kopie des Container-Images so lange bei, wie sie von einer Serving-Revision verwendet wird. Container-Images werden nicht aus dem Container-Repository abgerufen, wenn eine neue Cloud Run-Instanz gestartet wird.
Eine Beispielanleitung für die Bereitstellung eines neuen Dienstes finden Sie unter Kurzanleitung für einen Beispielcontainer bereitstellen.
Hinweis
Wenn Sie einer Organisationsrichtlinie zur Domaineinschränkung nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen von Cloud Run-Diensten benötigen:
- Rolle Cloud Run-Entwickler (
roles/run.developer) im Cloud Run-Dienst - Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität - Artifact Registry Reader (
roles/artifactregistry.reader) für das Artifact Registry-Repository des bereitgestellten Container-Images -
Wenn Sie ein projektübergreifendes Dienstkonto zum Bereitstellen eines Dienstes verwenden:
Ersteller von Dienstkonto-Token (
roles/iam.serviceAccountTokenCreator) für die Dienstidentität
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Dienst mitGoogle Cloud -APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Unterstützte Container Registries und Images
Sie können direkt in Artifact Registry gespeicherte Container-Images oder öffentliche Images aus Docker Hub oder der GitHub Container Registry verwenden. Google empfiehlt die Verwendung von Artifact Registry. Öffentliche Images aus GitHub Container Registry und Docker Hub-Images werden bis zu einer Stunde lang im Cache gespeichert.
Sie können Container-Images aus anderen öffentlichen oder privaten Registries (z. B. JFrog Artifactory oder Nexus) oder private Images aus der GitHub Container Registry verwenden. Dazu richten Sie ein Remote-Repository von Artifact Registry ein.
Sie sollten Docker Hub nur für die Bereitstellung gängiger Container-Images wie Offizielle Docker-Images oder Docker gesponserte OSS-Images in Betracht ziehen. Für eine höhere Verfügbarkeit empfiehlt Google, diese Docker Hub- oder GitHub Container Registry-Images über ein Artifact Registry-Remote-Repository bereitzustellen.
Cloud Run unterstützt keine Container-Image-Ebenen, die größer als 9,9 GB sind, wenn die Bereitstellung über Docker Hub oder ein Artifact Registry-Remote-Repository mit einer externen Registry erfolgt.
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.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Console
So stellen Sie ein Container-Image bereit:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie auf Container bereitstellen, 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 einen 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.
Verwenden Sie im Feld Region 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.
Konfigurieren Sie unter Authentifizierung Folgendes:
- Wenn Sie eine öffentliche API oder Website erstellen, wählen Sie Öffentlichen Zugriff zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung
allUserdie 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 Öffentlichen Zugriff zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung
Richten Sie die Abrechnung nach Bedarf ein.
Wenn Sie unter Dienstskalierung das standardmäßige Autoscaling von Cloud Run verwenden, können Sie optional die Mindestanzahl von Instanzen angeben. Wenn Sie die manuelle Skalierung verwenden, geben Sie die Anzahl der Instanzen für den Dienst an.
Legen Sie die Ingress-Einstellungen wie gewünscht im Formular fest.
Klicken Sie auf Container, Netzwerk, Sicherheit, um weitere optionale Einstellungen auf 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.
gcloud
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
So stellen Sie ein Container-Image bereit:
Führen Sie dazu diesen Befehl aus:
gcloud run deploy SERVICE --image IMAGE_URLErsetzen Sie Folgendes:
- SERVICE: Der Name des Dienstes, für den Sie die Bereitstellung ausführen 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.
- IMAGE_URL: ein Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. Wenn Sie das Flag--imagenicht 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öffentlichen Zugriff auf Ihren Dienst zulassen. Dadurch wirdallUsersdie IAM-Rolle Cloud Run Invoker zugewiesen. Sie können auch--no-allow-unauthenticatedangeben, um den öffentlichen Zugriff zu verbieten. Wenn Sie keines dieser Flags angeben, werden Sie aufgefordert, zu bestätigen, ob nicht authentifizierte Aufrufe zugelassen werden sollen, wenn der Befehldeployausgefü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-Attributenrun/regionangegeben 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 Datei vom Typ
service.yamlmit folgendem Inhalt:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
- IMAGE: 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.yamlDer Befehl
gcloud run services replaceverwendet standardmäßig die Dateiservice.yaml, sofern sie vorhanden ist.Optional: Veröffentlichen Sie Ihren Dienst, wenn Sie den nicht authentifizierten Zugriff auf den Dienst zulassen möchten.
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie einergoogle_cloud_run_v2_service-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu: provider "google" {
project = "PROJECT-ID"
}
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
client