Von legacy gebündelten Diensten migrieren

Der Großteil der Funktionen der gebündelten Legacy-Dienste wird jetzt von den Cloud-Clientbibliotheken bereitgestellt. Weitere Informationen dazu finden Sie unter den folgenden empfohlenen Alternativen.

Wenn die Migration zu einer nicht gebündelten Lösung für Ihr Projekt nicht infrage kommt, können Sie weiterhin die gebündelten Legacy-Dienste in Ihren Java 11/17 Anwendungen als Fallback verwenden. Dieser Ansatz bietet Ihnen die Möglichkeit, später im Migrationszyklus zu ungebündelten Diensten zu wechseln.

Migrationspfade für gebündelte App Engine-Dienste

Blobstore

Verwenden Sie zum Speichern und Abrufen von Daten Cloud Storage über die Cloud-Clientbibliotheken. Eine Einführung finden Sie unter Cloud Storage verwenden.

Datastore

Als Alternative zur Datastore API können Sie Firestore im Datastore-Modus verwenden. Firestore ist die neueste Version von Datastore. Wir empfehlen die Verwendung der Cloud-Clientbibliotheken für Datastore.

Bilder

Sie können Bilder aus Cloud Storage bereitstellen, entweder direkt oder mit einem Content Delivery Network (CDN) eines Drittanbieters.

Zum Ändern der Bildgröße und zum Konvertieren bzw. Bearbeiten von Bildern verwenden Sie eine Bildverarbeitungsbibliothek wie ImageJ2, imgscalr oder thumbnailator

Wenn Sie eine dieser Drittanbieterbibliotheken nutzen möchten, fügen Sie die Bibliothek als Abhängigkeit hinzu und aktualisieren Ihren Code, um die APIs der Bibliothek aufzurufen.

Mit dem App Engine-Bilderdienst können Sie auch dynamische Anfragen an Ihre Anwendung vermeiden. Damit wird die Größe von Bildern mithilfe einer Bereitstellungs-URL geändert. Sie können stattdessen auch die Bilder mit der neuen Größe im Voraus generieren und dann zur Bereitstellung in Cloud Storage hochladen. Alternativ haben Sie die Möglichkeit, die Bildgröße mit einem entsprechenden externen CDN-Dienst (Content Delivery Network) zu ändern.

Logging

Wir empfehlen Ihnen, Ihre Anwendung auf die Verwendung von Cloud Logging zu aktualisieren. Diese unterstützt Funktionen wie das Aufrufen von Logs im Logs Explorer, das Herunterladen von Logs, das Filtern von Nachrichten nach Schweregrad und die Korrelation von Anwendungsnachrichten mit bestimmten Anfragen. Wenn Sie die Einfachheit der Datenerfassung der Datengenauigkeit vorziehen, können Sie strukturierte Logs auch in stdout oder stderr schreiben. Weitere Informationen finden Sie unter Logs schreiben und ansehen.

E-Mail

Verwenden Sie zum Senden von E-Mails einen Drittanbieter wie SendGrid, Mailgun oder Mailjet. Alle diese Dienste bieten APIs zum Senden von E-Mails aus Anwendungen. Eine empfohlene Drittanbieter-Alternative für eingehende Nachrichten ist derzeit nicht verfügbar.

Memcache

Verwenden Sie Memorystore for Redis zum Speichern von Anwendungsdaten im Cache.

Module

Zum Abrufen von Informationen und zum Ändern der ausgeführten Dienste Ihrer Anwendung verwenden Sie eine Kombination aus Umgebungsvariablen und der App Engine Admin API:

Dienstinformation Zugriff
Aktuelle Anwendungs-ID Umgebungsvariable GAE_APPLICATION
Aktuelle Projekt-ID Umgebungsvariable GOOGLE_CLOUD_PROJECT
Aktueller Dienstname Umgebungsvariable GAE_SERVICE
Aktuelle Dienstversion Umgebungsvariable GAE_VERSION
Aktuelle Instanz-ID Umgebungsvariable GAE_INSTANCE
Standardhostname Admin API-Methode apps.get
Liste der Dienste Admin API-Methode apps.services.list
Liste der Versionen für einen Dienst Admin API-Methode apps.services.versions.list
Standardversion für einen Dienst, inklusive Traffic-Aufteilung Admin API-Methode apps.services.get
Liste der für eine Version ausgeführten Instanzen Admin API-Methode apps.services.versions.instances.list

Weitere Informationen zu den Daten, die zu den ausgeführten Diensten Ihrer Anwendung verfügbar sind, finden Sie unter Java 11/17 -Laufzeitumgebung

Namespaces

Mit der Namespaces API konnten mehrinstanzenfähige Anwendungen Daten nach Mandanten partitionieren. Dazu wurde für jeden Mandanten einfach ein eindeutiger Namespace-String festgelegt.

Datastore unterstützt die Mehrinstanzenfähigkeit direkt, andere Google Cloud-Dienste dagegen nicht. Wenn Ihre mehrinstanzenfähige Anwendung andere Google Cloud-Dienste verwendet, müssen Sie die Mehrinstanzenfähigkeit manuell festlegen. Sie können mit der Cloud Resource Manager API programmatisch neue Projekte erstellen und projektübergreifend auf Ressourcen zugreifen, um Dienstinstanzen vollständig zu isolieren.

OAuth

Verwenden Sie zum Prüfen von OAuth 2.0-Tokens nicht den App Engine-OAuth-Dienst, sondern die Methode oauth2.tokeninfo der OAuth 2.0-API.

Hosten Sie eine Volltextsuchdatenbank wie Elasticsearch in Compute Engine und greifen Sie von Ihrem Dienst aus darauf zu.

Aufgabenwarteschlange

Stellen Sie Aufgaben für die asynchrone Codeausführung mithilfe von Cloud Tasks REST API, RPC API oder der Cloud-Clientbibliotheken in die Warteschlange und verwenden Sie einen Java 11/17 App Engine-Standarddienst als Push-Ziel. Weitere Informationen finden Sie unter Von Aufgabenwarteschlangen zu Cloud Tasks migrieren.

Informationen zu Java 11/17 finden Sie im folgenden Beispielprogramm, das mit der Cloud Tasks API interagiert.

In vielen Fällen, in denen Sie Pull-Warteschlangen verwenden können, z. B. für Aufgaben oder Nachrichten, die von unterschiedlichen Workern abgerufen und verarbeitet werden, ist Pub/Sub eine empfehlenswerte Alternative, die ähnliche Funktionen und Zustellgarantien bietet.

Nutzerauthentifizierung

Verwenden Sie als Alternative zur Users API einen der HTTP-basierten Authentifizierungsmechanismen, die auf der Seite Nutzerauthentifizierung beschrieben werden.