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 dieser Anleitung wird beschrieben, wie Sie Ihre Anwendungen 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 Legacy-Dienste von App Engine verwenden.
Die in dieser Anleitung beschriebenen Schritte haben keine Auswirkungen auf die Funktionalität oder den Trafficfluss Ihrer vorhandenen App Engine-Anwendung. Der neu erstellte Cloud Run-Dienst ist eine Kopie des App Engine-Dienstes, den Sie unabhängig testen können.
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.
Wählen Sie eine der folgenden Strategien aus, um in Cloud Run bereitzustellen:
Vorhandene App Engine-Anwendung direkt in Cloud Run bereitstellen.
Mit der Datei
app.yamleinen Dienst mit Ihrer vorhandenen App Engine-Konfiguration in Cloud Run bereitstellen.
Hinweis
Achten Sie darauf, dass Sie Zugriff auf den App Engine-Quellcode haben und Ihre App Engine-Anwendung fehlerfrei ausgeführt wird.
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 beendet und die Inkompatibilitäten werden aufgelistet.
Prüfen Sie die folgenden Unterschiede bei Cloud Run:
In Cloud Run wird der Begriff
Revisionanstelle vonVersionverwendet, um jede Bereitstellung von Änderungen für einen 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 zur Bereitstellung in Cloud Run.Sie können Ihren Quellcode mit der gcloud CLI oder Google Cloud Console in Cloud Run bereitstellen, um die App Einstellungen 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
run.appDomain in der URL, um öffentlich auf den Dienst zuzugreifen.Im Gegensatz zu standardmäßig öffentlichen App Engine-Diensten sind Cloud Run-Dienste standardmäßig privat und erfordern eine Konfiguration für den öffentlichen (nicht authentifizierten) Zugriff.
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-Quellcodeentwickler (
roles/run.sourceDeveloper) für Ihr Projekt - Service Usage-Nutzer (
roles/serviceusage.serviceUsageConsumer) für Ihr Projekt - 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, um Ihren Quellcode und Ihre
Cloud Run-Ressource zu erstellen, es sei denn, Sie überschreiben dieses Verhalten. Damit
Cloud Build Ihre Quellen erstellen kann, bitten Sie Ihren Administrator, dem
Cloud Run-Builder
(roles/run.builder) die Rolle Compute Engine-Standarddienstkonto
in Ihrem Projekt 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 Cloud
Projektnummer und PROJECT_ID durch Ihre Google Cloud
Projekt-ID. Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer,
siehe 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 mit Google 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.
Vorhandene App Engine-Anwendung bereitstellen
Sie können eine vorhandene App Engine-Anwendung direkt mit der Google Cloud Console oder der gcloud CLI in Cloud Run bereitstellen.
Console
Rufen Sie in der Google Cloud Console die App Engine Seite auf.
Klicken Sie im Navigationsmenü auf Migration Center, um Ihre App Engine-Anwendung in Cloud Run bereitzustellen. Im Migration Center können Sie auch Ihre geschätzten Einsparungen in Cloud Run für Kostenschätzungen und Empfehlungen prüfen.
Wählen Sie den Dienst aus, den Sie migrieren möchten, und klicken Sie auf Kompatibilität prüfen.
Wählen Sie den Dienst und die Version aus, um die Kompatibilitätsergebnisse zu sehen. Das Migration Center führt eine Kompatibilitätsprüfung durch, um inkompatible Funktionen zu identifizieren.
Prüfen Sie die Ergebnisse, um zu bestätigen, dass Ihre Anwendung vollständig mit Cloud Run kompatibel ist, und klicken Sie auf Weiter , um zum Abschnitt Prüfen und bereitstellen zu gelangen.
Kopieren Sie den Befehl im Abschnitt Über gcloud bereitstellen und führen Sie ihn in Ihrem Projektverzeichnis aus.
Klicken Sie auf Bereitgestellte Versionen ansehen , um Ihre in Cloud Run bereitgestellten App Engine-Dienste zu sehen.
gcloud
Migrieren Sie Ihre Anwendung mit der Google Cloud CLI und Ihrer lokalen Datei app.yaml oder einer vorhandenen App Engine-Bereitstellungskonfiguration.
Wechseln Sie im Terminal zum Quellverzeichnis Ihres Projekts, in dem sich die Datei
app.yamlbefindet.Führen Sie dazu diesen Befehl aus:
gcloud beta app migrate-to-runWenn sich die Datei
app.yamlin einem anderen Verzeichnis befindet, fügen Sie das Flag--appyamlein:gcloud beta app migrate-to-run --appyaml=PATHErsetzen Sie PATH durch den Pfad zur Datei
app.yaml.
Weitere Informationen finden Sie unter gcloud beta app migrate-to-run.
Datei app.yaml verwenden
Übersetzen Sie Ihre lokale App Engine-Datei app.yaml in einen Cloud Run-Dienst, indem Sie den folgenden Befehl ausführen:
Wechseln Sie im Terminal zum Quellverzeichnis Ihres Projekts, in dem sich die Datei
app.yamlbefindet.Führen Sie dazu diesen Befehl aus:
gcloud beta app migrate-to-runWenn sich die Datei
app.yamlin einem anderen Verzeichnis befindet, fügen Sie das Flag--appyamlein:gcloud beta app migrate-to-run --appyaml=PATHErsetzen Sie PATH durch den Pfad zur Datei
app.yaml.
Weitere Informationen finden Sie unter gcloud beta app migrate-to-run.
Konfiguration einer vorhandenen Bereitstellung verwenden
Wenn Sie die Konfiguration eines bereitgestellten App Engine-Dienstes anstelle einer lokalen Datei app.yaml verwenden möchten, führen Sie den folgenden Befehl aus.
gcloud beta app migrate-to-run --service=SERVICE --version=VERSION
Dieser Befehl verwendet die Konfiguration der Datei app.yaml aus einer vorhandenen Bereitstellung. Diese ist möglicherweise veraltet, wenn Sie kürzlich Änderungen an Ihrer lokalen Datei app.yaml vorgenommen haben:
Ersetzen Sie Folgendes:
- SERVICE durch den Namen Ihres App Engine-Dienstes.
App Engine verwendet die Konfiguration des vorhandenen Dienstes und ignoriert die Konfiguration der Datei
app.yamlin Ihrem lokalen Verzeichnis. - VERSION durch die Versions-ID Ihres Dienstes. App Engine verwendet die Konfiguration der vorhandenen Version und ignoriert die Konfiguration der Datei
app.yamlin Ihrem lokalen Verzeichnis.
Weitere Informationen finden Sie unter gcloud beta app
migrate-to-run.
Inkompatible Funktionen
Der Migrationsbefehl schlägt fehl, wenn Ihre Datei app.yaml 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
- Informationen zum Verwalten Ihrer Cloud Run-Dienste.
- Informationen zu den Anforderungen und Verhaltensweisen von Containern in Cloud Run finden Sie im Cloud Run-Containervertrag.
- 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.