Trabaja con operaciones de larga duración

En esta página se describe cómo usar Cloud AutoML para manejar operaciones de larga duración en AutoML Tables.

Introducción

Algunas operaciones de AutoML Tables requieren algo de tiempo para completarse:

  • datasets.importData
  • datasets.exportData
  • datasets.delete
  • models.batchPredict
  • models.create
  • models.delete
  • models.deploy
  • models.exportEvaluatedExamples
  • models.undeploy

Si usas la consola de Google Cloud, puedes cerrar la ventana del navegador sin afectar la operación. El panel se actualiza cuando se completa la operación.

Cuando realizas una llamada a la API que demora mucho tiempo en completarse, la llamada inicial se muestra de inmediato, aunque la operación aún se esté ejecutando. Existen algunos métodos auxiliares que puedes usar para determinar el estado de una operación de larga duración.

AutoML Tables envía un correo electrónico a los propietarios del proyecto cuando se completan las operaciones de larga duración.

Consulta el estado de una operación

Puedes consultar el estado de una operación de larga duración. Este enfoque no bloquea tu programa, pero debes seguir consultando hasta que se complete la operación.

Para obtener el estado de la operación, usa el ID de operación de la respuesta que recibiste cuando iniciaste la operación. El ID de operación no se muestra en la consola de Google Cloud.

En el comando siguiente, reemplaza operation-name por el nombre completo de tu operación. El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1beta1/operation-name

Deberías ver un resultado similar al siguiente para una operación de importación: en el resultado, hay un objeto metadata que contiene información específica para el tipo de solicitud. El campo done muestra si se completó o no la operación. Si se completó la operación, la respuesta contiene información sobre el efecto de la solicitud.

{
  "name": "projects/1234/locations/us-central1/operations/TBL2126",
  "metadata": {
...
  },
  "done": true,
  "response": {
...
  }
}

Espera por una operación

Si deseas bloquear la ejecución en esta operación, puedes esperar a que se complete (o hasta que se agote el tiempo de espera que especifiques).

En el siguiente comando, reemplaza:

  • operation-name por el nombre completo de tu operación El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}. El ID de operación no se muestra en la consola de Google Cloud.

  • timeout con la cantidad máxima de tiempo que deseas esperar, en (fracción de) segundos, finalizada con “s”. Por ejemplo, “4.5s” hace que el comando de espera vuelva en cuatro segundos y medio si la operación aún se está ejecutando.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
   -d '{"timeout":"timeout"}' \
  https://automl.googleapis.com/v1beta1/operation-name:wait

Cancela una operación

Puedes cancelar una tarea de importación o una de entrenamiento con el ID de operación, pero no se garantiza que esto suceda correctamente. Si cancelas una tarea de entrenamiento, se te cobrará por el tiempo de entrenamiento utilizado.

No se puede borrar una operación.

En el comando siguiente, reemplaza operation-name por el nombre completo de tu operación. El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}. El ID de operación no se muestra en la consola de Google Cloud.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  https://automl.googleapis.com/v1beta1/operation-name:cancel