API de funciones para servicios agrupados en paquetes heredados

Con la API de funciones, tu aplicación puede detectar interrupciones y tiempos de inactividad programados para funciones de API específicas. Puedes usar esta API para reducir el tiempo de inactividad en tu aplicación detectando funciones que no estén disponibles para luego saltearlas. Para ver el contenido del paquete capability, consulta la referencia del paquete capability. .

Por ejemplo, si usas la API de Datastore, puedes emplear la API de funciones para detectar cuándo la API de Datastore no está disponible e informar sobre el error al usuario:

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 ...
}

Puedes consultar por separado si hay disponibilidad de operaciones de lectura y escritura en Datastore. En el siguiente ejemplo, se muestra cómo detectar la disponibilidad de operaciones de escritura en Datastore y cómo enviar un mensaje a los usuarios durante el tiempo de inactividad:

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

Usa la API de funciones en Go 1.11

La función capability.Enabled muestra “true” si la API y la función proporcionadas están disponibles. Debes pasar un nombre de función (como "write") o el comodín "*" para consultar todas las funciones de la API.

Funciones compatibles

Por el momento, la API admite las siguientes funciones:

Función Argumentos para Enabled
Disponibilidad de Blobstore "blobstore", "*"
Opciones de lectura de Datastore "datastore_v3", "*"
Opciones de escritura de Datastore "datastore_v3", "write"
Disponibilidad del servicio de correo "mail", "*"
Disponibilidad del servicio de Memcache "memcache", "*"
Disponibilidad del servicio de lista de tareas en cola "taskqueue", "*"
Disponibilidad del servicio de recuperación de URL "urlfetch", "*"