Regions-ID
REGION_ID ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
In diesem Leitfaden wird beschrieben, wie Sie Ihre Apps in der Standardumgebung mit der Google Cloud CLI in Cloud Run bereitstellen. Die Anleitung gilt für Laufzeiten der zweiten Generation, die nicht die gebündelten App Engine-Legacy-Dienste verwenden.
Cloud Run verwendet einen Großteil derselben Infrastruktur wie die App Engine-Standardumgebung, was zu vielen Ähnlichkeiten zwischen den Plattformen führt. Weitere Informationen zu den Gemeinsamkeiten und Unterschieden zwischen App Engine und Cloud Run, einschließlich der Vorteile der Migration zu Cloud Run, finden Sie in der vergleichenden Zusammenfassung.
Wenn Sie die Bereitstellung in Cloud Run mit dem Befehl gcloud beta app migrate vornehmen möchten, wählen Sie eine der folgenden Strategien aus:
Mit der
app.yaml-Datei können Sie einen Dienst mit Ihrer vorhandenen App Engine-Konfiguration in Cloud Run bereitstellen.Stellen Sie eine vorhandene App Engine-Anwendung direkt in Cloud Run bereit.
Hinweise
Sie müssen Zugriff auf den App Engine-Quellcode haben und Ihre App Engine-Anwendung muss fehlerfrei ausgeführt werden.
Aktivieren Sie die Cloud Run Admin API und die Artifact Registry API:
Konfigurieren Sie Ihr Projekt und Ihre Region mit dem folgenden Befehl:
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateErsetzen Sie Folgendes:
- PROJECT_ID durch Ihre Google Cloud Projekt-ID.
- REGION durch Ihre Region.
Prüfen Sie die inkompatiblen Funktionen in Ihrer Anwendung und entfernen Sie sie, bevor Sie zu Cloud Run migrieren. Wenn Ihre vorhandene Anwendung inkompatible Funktionen enthält, wird der Migrationsprozess angehalten und die Inkompatibilitäten werden aufgelistet.
Beachten Sie die folgenden Unterschiede bei Cloud Run:
In Cloud Run wird der Begriff
Revisionanstelle vonVersionverwendet, um jede Bereitstellung von Änderungen an einem bestimmten Dienst darzustellen. Wenn Sie Ihre App zum ersten Mal in einem Cloud Run-Dienst bereitstellen, wird die erste Revision erstellt. Bei jeder nachfolgenden Bereitstellung eines Dienstes wird eine weitere Revision erstellt. Weitere Informationen zum Bereitstellen in Cloud RunSie können Ihren Quellcode mit der gcloud CLI oder der Google Cloud Console in Cloud Run bereitstellen, um die Einstellungen Ihrer App zu konfigurieren und zu verwalten. Cloud Run erfordert keine dateibasierte Konfiguration. Die YAML-Konfiguration wird jedoch unterstützt.
Jeder Dienst, den Sie in Cloud Run bereitstellen, verwendet die Domain
run.appin der URL, um öffentlich auf den Dienst zuzugreifen.Im Gegensatz zu standardmäßig öffentlichen App Engine-Diensten sind Cloud Run-Dienste standardmäßig privat. Bei diesen Diensten müssen Sie sie für den öffentlichen (nicht authentifizierten) Zugriff konfigurieren.
Erforderliche Rollen
Sie können entweder ein neues Dienstkonto erstellen oder dasselbe nutzerverwaltete Dienstkonto in Cloud Run verwenden, das Sie für App Engine verwenden. Sie oder Ihr Administrator müssen dem Bereitstellerkonto und dem Cloud Build-Dienstkonto die folgenden IAM-Rollen zuweisen.
Klicken, um die erforderlichen Rollen für das Bereitstellerkonto aufzurufen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Bereitstellen aus der Quelle benötigen:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) für Ihr Projekt - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) für Ihr Projekt - Rolle Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Cloud Run-Dienstidentität
Klicken, um die erforderlichen Rollen für das Cloud Build-Dienstkonto aufzurufen
Cloud Build verwendet automatisch das Compute Engine-Standarddienstkonto als Standard-Cloud Build-Dienstkonto zum Erstellen Ihres Quellcodes und Ihrer Cloud Run-Ressource, sofern Sie dieses Verhalten nicht überschreiben. Damit Cloud Build Ihre Quellen erstellen kann, bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto in Ihrem Projekt die Rolle Cloud Run Builder (roles/run.builder) zuzuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Ersetzen Sie PROJECT_NUMBER durch Ihre Google CloudProjektnummer und PROJECT_ID durch Ihre Google CloudProjekt-ID. Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer finden Sie unter Projekte erstellen und verwalten.
Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Run-Builder“ für das Compute Engine-Standarddienstkonto übertragen wurde.
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.
app.yaml-Datei verwenden
Übersetzen Sie Ihre App Engine-app.yaml-Datei in einen Cloud Run-Dienst, indem Sie den folgenden Befehl ausführen:
gcloud beta app migrate-to-run --appyaml=PATH --entrypoint=ENTRYPOINT
Ersetzen Sie Folgendes:
- PATH durch den Pfad zu Ihrer
app.yaml-Datei. - ENTRYPOINT durch den Einstiegspunktbefehl für Ihre Anwendung.
Wenn Sie sich im Projektverzeichnis befinden, sind sowohl das PATH- als auch das ENTRYPOINT-Argument optional.
Weitere Informationen zu den Argumenten, die Sie mit dem Befehl gcloud beta app migrate-to-run verwenden können, finden Sie unter gcloud beta app migrate-to-run.
Vorhandene App Engine-Anwendung bereitstellen
Sie können eine vorhandene App Engine-Anwendung direkt in Cloud Run bereitstellen, indem Sie den folgenden Befehl ausführen:
gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --entrypoint=ENTRYPOINT
Mit diesem Befehl werden Sie aufgefordert, den relativen Pfad zu Ihrem Quellcodeverzeichnis anzugeben.
Ersetzen Sie Folgendes:
- SERVICE durch den Namen Ihres App Engine-Dienstes.
- VERSION durch die Versions-ID Ihres Dienstes.
- ENTRYPOINT durch den Einstiegspunktbefehl für Ihre Anwendung. Wenn Sie sich im Projektverzeichnis befinden, ist dieses Argument optional.
Weitere Informationen zu den Argumenten, die Sie mit dem Befehl gcloud beta app migrate verwenden können, finden Sie unter gcloud beta app migrate-to-run.
Inkompatible Features
Der Migrationsbefehl schlägt fehl, wenn Ihre app.yaml-Datei eine der folgenden nicht unterstützten Konfigurationen enthält:
Eingehende Dienste:
inbound_services: - warmupBenutzerdefinierte Fehlerseiten:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlGebündelte Dienste für Laufzeiten der zweiten Generation:
app_engine_apis: trueBuild-Umgebungsvariablen:
build_env_variables: Foo: BarLaufzeiten der ersten Generation:
runtime: python27
Nächste Schritte
- Cloud Run-Dienste verwalten
- Informationen zu den Anforderungen und Verhaltensweisen von Containern in Cloud Run finden Sie im Cloud Run-Containerlaufzeitvertrag.
- Hier erfahren Sie, wie Sie Abhängigkeiten für Ihren Dienst mithilfe eines Secret Managers speichern, die API-Schlüssel, Passwörter oder andere vertrauliche Informationen erfordern.