Capabilities Go API の概要

Capabilities API を使用すると、特定の API 機能の停止や予定されているダウンタイムをアプリケーションで検出できます。この API を使用すると、特定の機能を利用できないことを検出してバイパスできるので、アプリケーションのダウンタイムを短縮できます。capability パッケージの内容を確認するには、capability パッケージ リファレンスをご覧ください。

たとえば Datastore API を使用する場合、Capabilities API を利用すると、Datastore API が利用できないときにそれを検出したり、エラーをユーザーに報告したりできます。

func handler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	if !capability.Enabled(ctx, "datastore_v3", "*") {
		http.Error(w, "This service is currently unavailable.", 503)
		return
	}
	// do Datastore lookup ...
}

データストアの読み取りと書き込みが可能かどうかを調べるには、別のクエリを実行できます。次の例は、データストアが書き込み可能であるかを確認し、ダウンタイム中であればユーザーにメッセージを表示する方法を示しています。

if !capability.Enabled(ctx, "datastore_v3", "write") {
	// Datastore is in read-only mode.
}

Go での Capabilities API の使用

capability.Enabled 関数は、指定された API と機能が利用可能である場合に true を返します。API のすべての機能のクエリを実行するには、機能名("write")またはワイルドカード "*" を渡す必要があります。

サポートされている機能

この API は現在、次の機能をサポートしています。

機能 Enabled への引数
blobstore の利用可否 "blobstore", "*"
データストアの読み取り "datastore_v3", "*"
データストアの書き込み "datastore_v3", "write"
メールサービスの利用可否 "mail", "*"
Memcache サービスの利用可否 "memcache", "*"
タスクキュー サービスの利用可否 "taskqueue", "*"
URL フェッチ サービスの利用可否 "urlfetch", "*"
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine スタンダード環境