기존 번들 서비스용 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에서 현재 지원되는 기능은 다음과 같습니다.

기능 CapabilitySet에 대한 인수
blobstore 사용 가능 여부 "blobstore"
Datastore 읽기 "datastore_v3"
Datastore 쓰기 "datastore_v3", ["write"]
이미지 서비스 사용 가능 여부 "images"
메일 서비스 사용 가능 여부 "mail"
Memcache 서비스 사용 가능 여부 "memcache"
태스크 큐 서비스 사용 가능 여부 "taskqueue"
URL Fetch 서비스 사용 가능 여부 "urlfetch"