Avec l'API Capabilities, votre application peut détecter les pannes et les temps d'arrêt planifiés pour des fonctionnalités d'API spécifiques. Vous pouvez utiliser cette API pour réduire les temps d'arrêt de votre application en détectant le moment où une fonctionnalité n'est pas disponible et en la désactivant. .
Par exemple, si vous passez par l'API Images pour redimensionner des images, vous pouvez utiliser l'API Capabilities pour détecter à quel moment l'API Images n'est pas disponible et ignorer le redimensionnement :
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)
L'API Datastore fournit un wrapper de commodité pour les opérations de lecture et d'écriture dans le datastore. Bien que vous puissiez tester les fonctionnalités simplement en fournissant le nom de la fonctionnalité comme argument à CapabilitySet()
, vous pouvez également utiliser les objets CapabilitySet
de commodité db.READ_CAPABILITY
et db.WRITE_CAPABILITY
. L'exemple suivant montre comment procéder pour détecter la disponibilité des opérations d'écriture dans le datastore à l'aide d'un wrapper de commodité, et comment envoyer un message aux utilisateurs lors des temps d'arrêt :
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
Utiliser l'API Capabilities en Python 2
La classe CapabilitySet définit toutes les méthodes disponibles pour cette API. Vous pouvez nommer les fonctionnalités explicitement ou les déduire à partir des méthodes fournies par cette classe. Consultez ci-dessous la liste des services actuellement activés dans cette API.
Fonctionnalités proposées
L'API propose actuellement les fonctionnalités suivantes :
Capacité | Arguments pour CapabilitySet |
---|---|
Disponibilité du Blobstore | "blobstore" |
Lectures dans le datastore | "datastore_v3" |
Écritures Datastore | "datastore_v3", ["write"] |
Disponibilité du service Images | "images" |
Disponibilité du service Mail | "mail" |
Disponibilité du service Memcache | "memcache" |
Disponibilité du service Task Queue | "taskqueue" |
Disponibilité du service URL Fetch | "urlfetch" |