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" |