Capabilities API für gebündelte Legacy-Dienste

Mithilfe der Capabilities API kann Ihre Anwendung für bestimmte API-Funktionen Ausfälle und geplante Ausfallzeiten erkennen. Mit dieser API können Sie die Ausfallzeiten Ihrer Anwendung reduzieren, indem Sie erkennen, wann eine Funktion nicht verfügbar ist, und diese dann umgehen. .

Falls Sie beispielsweise mit der Images API die Größe von Bildern ändern, können Sie mithilfe der Capabilities API erkennen, wann die Images API nicht verfügbar ist, und die Größenänderung überspringen:

from google.appengine.api import capabilities

def StoreUploadedProfileImage(self):
    uploaded_image = self.request.get('img')
    # If the images API is unavailable, we'll just skip the resize.
    if capabilities.CapabilitySet('images').is_enabled():
        uploaded_image = images.resize(uploaded_image, 64, 64)
    store(uploaded_image)

Die Datastore API bietet einen praktischen Wrapper für die Lese- und Schreibfunktionen von Datastore. Sie können Funktionen zwar testen, indem Sie den Funktionsnamen als Argument für CapabilitySet() angeben, in diesem Fall können Sie aber auch die db.READ_CAPABILITY - und db.WRITE_CAPABILITY- Convenience-CapabilitySet -Objekte verwenden. Das folgende Beispiel zeigt, wie die Verfügbarkeit von Datastore-Schreibvorgängen mithilfe eines Convenience-Wrappers ermittelt und den Nutzern während einer Ausfallzeit ein Fehler angezeigt wird:

from google.appengine.ext import db

def RenderHTMLForm(self):
    if not db.WRITE_CAPABILITY.is_enabled():
        # Datastore is in read-only mode.

Capabilities API in Python 2 verwenden

Die CapabilitySet -Klasse definiert alle verfügbaren Methoden für dieses API. Sie können Funktionen entweder explizit benennen oder aus den von dieser Klasse bereitgestellten Methoden ableiten. Im Folgenden finden Sie eine Liste der Dienste, die derzeit in dieser API aktiviert sind.

Unterstützte Funktionen

Die API unterstützt zurzeit die folgenden Funktionen:

Funktion Argumente für CapabilitySet
Verfügbarkeit von Blobstore "blobstore"
Datastore-Lesevorgänge "datastore_v3"
Datastore-Schreibvorgänge "datastore_v3", ["write"]
Verfügbarkeit des Images-Diensts "images"
Verfügbarkeit des Mail-Diensts "mail"
Verfügbarkeit des Memcache-Diensts "memcache"
Verfügbarkeit des Aufgabenwarteschlangendiensts "taskqueue"
Verfügbarkeit des URL-Abrufdiensts "urlfetch"