适用于旧版捆绑服务的 Capabilities API

利用 Capabilities API,您的应用可以检测特定 API 功能的服务中断情况和计划内停机时间。您可以使用此 API 来检测某项功能何时不可用并绕开这个时间,从而缩短应用停机时间。

例如,如果您使用 Images API 调整图片的大小,可以使用 Capabilities API 检测 Images API 何时不可用并跳过调整大小的步骤:

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)

Datastore API 为 Datastore 读写功能提供便利的包装函数。虽然您可以通过将功能名称作为参数提供给 CapabilitySet() 来测试功能,但在这种情况下,您还可以使用 db.READ_CAPABILITYdb.WRITE_CAPABILITY 便利 CapabilitySet 对象。以下示例展示如何使用简便的包装函数来检测 Datastore 写操作的可用性,以及如何在停机期间向用户提供消息:

from google.appengine.ext import db

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

在 Python 2 中使用 Capabilities API

CapabilitySet 类定义了此 API 的所有可用方法。您可以明确命名这些功能,也可以通过此类提供的方法推断功能。请参阅下文,了解此 API 中当前启用的服务的列表

支持的功能

API 目前支持以下功能:

Capability CapabilitySet 的参数
Blobstore 的可用性 "blobstore"
数据存储区读取 "datastore_v3"
数据存储区写入 "datastore_v3", ["write"]
Images 服务的可用性 "images"
Mail 服务的可用性 "mail"
Memcache 服务的可用性 "memcache"
任务队列服务的可用性 "taskqueue"
网址提取服务的可用性 "urlfetch"