Webdienste in App Engine strukturieren

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.

Hier finden Sie weitere Informationen zu Regions-IDs.

In diesem Dokument wird erläutert, wie Sie die Dienste und zugehörigen Ressourcen Ihrer Anwendung für App Engine strukturieren.

Verzeichnisstruktur

Jede Version Ihres App Engine-Dienstes ist in einer app.yaml-Konfigurationsdatei definiert. Zum Bereitstellen einfacher Anwendungen muss mindestens die Datei app.yaml definiert werden. Die Datei app.yaml dient als Deployment-Deskriptor und definiert den Skalierungstyp sowie die Laufzeit, den Handler und andere Ressourceneinstellungen für eine bestimmte Version eines Dienstes. Wenn Sie mehrere Versionen eines Dienstes bereitstellen, können Sie mehrere YAML-Dateien mit der jeweiligen Konfiguration Ihrer Versionen im selben Verzeichnis erstellen.

Die Dateiorganisation hängt davon ab, welche Java-Laufzeit Sie verwenden. Für jeden Dienst in Ihrer Anwendung benötigen Sie möglicherweise eine WAR-Datei oder eine JAR-Datei. Weitere Informationen finden Sie im entsprechenden Leitfaden für Java-Laufzeitentwickler.

Designaspekte zur Instanzverfügbarkeit

Hardware- oder Softwarefehler, die zu einer vorzeitigen Beendigung oder zu häufigen Neustarts von Instanzen führen, können ohne Vorwarnung auftreten und viel Zeit für die Behebung in Anspruch nehmen. Ihre Anwendung muss mit solchen Störungen zurechtkommen.

Hier sind einige Vorgehensweisen, um Ausfallzeiten durch Instanzneustarts zu vermeiden:

  • Beschleunigen Sie den Neustart vorhandener Instanzen bzw. den Start neuer Instanzen.
  • Erstellen Sie bei lang laufenden Berechnungen regelmäßig Prüfpunkte, damit Sie den Vorgang beim jeweiligen Status fortsetzen können.
  • Ihre Anwendung sollte "zustandslos" sein. Es darf also nichts auf der Instanz gespeichert werden.
  • Führen Sie Aufgaben mithilfe von Warteschlangen asynchron aus.
  • Wenn Sie Ihre Instanzen für manuelle Skalierung konfigurieren:
    • Verwenden Sie ein Load-Balancing-Modul für mehrere Instanzen.
    • Konfigurieren Sie mehr Instanzen, als für die Verarbeitung des normalen Traffics erforderlich sind.
    • Schreiben Sie eine Fallback-Logik, die im Cache gespeicherte Ergebnisse verwendet, wenn keine manuelle Skalierungsinstanz verfügbar ist.

Weitere Informationen zu Instanzen finden Sie unter Instanzverwaltung.

default-Dienst

Jede App Engine-Anwendung enthält einen default-Dienst. Sie müssen die ursprüngliche Version Ihrer Anwendung zuerst für den default-Dienst bereitstellen, bevor Sie zusätzliche Dienste für Ihre Anwendung erstellen und bereitstellen können.

Dieser Standarddienst kann optional in der Datei app.yaml mit der Einstellung service: default angegeben werden.

Anfragen, die mithilfe Ihres Cloud-Projekts an die Anwendung gesendet werden, gehen an den default-Dienst. Beispiel: https://PROJECT_ID.REGION_ID.r.appspot.com. Weitere Informationen zum Ansteuern anderer Dienste finden Sie unter Kommunikation zwischen Diensten.

Optionale Konfigurationsdateien

Die folgenden Konfigurationsdateien steuern optionale Features, die für alle Dienste in einer einzelnen Anwendung gelten. In den folgenden Themen finden Sie Einzelheiten zu jedem dieser optionalen Features:

  • dispatch.yaml überschreibt Standardregeln für Routing, indem eingehende Anfragen anhand des Pfads oder Hostnamens in der URL an einen bestimmten Dienst gesendet werden
  • index.yaml gibt an, welche Indexe Ihre Anwendung bei Verwendung von Datastore-Abfragen benötigt.
  • cron.yaml konfiguriert regelmäßig geplante Aufgaben, die zu festgelegten Zeiten oder in regelmäßigen Intervallen ausgeführt werden.

Überlegungen zu Daten- und Dateispeichern

Über App Engine können Sie ganz einfach auf andere Google Cloud-Dienste wie Datastore, Cloud SQL und Cloud Storage zugreifen.

Sie können auch eine externe oder Drittanbieter-Datenbank verwenden, wenn diese Datenbank von Ihrer Sprache unterstützt wird und über Ihre App Engine-Instanz zugänglich ist.

Weitere Informationen zum Speichern von Dateien in Google Cloud oder an einem externen Ort finden Sie unter Informationen zu Daten- und Dateispeichern.

Für die Bereitstellung von statischen Inhalten stehen Ihnen außerdem verschiedene Optionen zur Wahl. So lässt sich der statische Inhalt der Anwendung direkt über diese Anwendung in App Engine bereitstellen oder auf einem Google Cloud-Dienst wie Cloud Storage hosten. Außerdem können Sie dafür ein Content Delivery Network (CDN) eines Drittanbieters verwenden. Weitere Informationen zum Bereitstellen statischer Inhalte finden Sie unter Statische Dateien bereitstellen.

Nächste Schritte

Wenn Sie mit mehreren Diensten arbeiten und diese gemeinsam bereitstellen möchten, finden Sie weitere Informationen unter Mehrere Dienste bereitstellen.