Travailler avec des opérations de longue durée

Cette page explique comment utiliser la technologie Cloud AutoML pour gérer des opérations de longue durée dans AutoML Tables.

Introduction

Certaines opérations dans AutoML Tables nécessitent un certain temps :

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

Si vous utilisez la console Google Cloud, vous pouvez fermer la fenêtre de votre navigateur sans affecter l'opération. Le panneau se met à jour lorsque l'opération est terminée.

Lorsque vous effectuez un appel d'API qui prend beaucoup de temps, l'appel initial est renvoyé immédiatement, même si l'opération est toujours en cours d'exécution. Certaines méthodes d'assistance sont à votre disposition pour déterminer l'état d'une opération de longue durée.

AutoML Tables envoie un e-mail aux propriétaires de projet lorsque des opérations de longue durée sont terminées.

Interroger l'état d'une opération

Il est possible d'interroger l'état d'une opération de longue durée. Cette approche ne bloque pas votre programme, mais vous devez poursuivre l'interrogation jusqu'à la fin de l'opération.

Pour obtenir l'état de l'opération, vous utilisez l'ID d'opération indiqué dans la réponse renvoyée au démarrage. L'ID d'opération ne s'affiche pas dans la console Google Cloud.

Dans la commande ci-dessous, remplacez operation-name par le nom complet de votre opération. Le nom complet a le format suivant : 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

Pour une opération d'importation, vous devriez voir une sortie semblable à la suivante : dans la sortie, un objet metadata contient des informations spécifiques au type de requête. Le champ done indique si l'opération est terminée ou non. Si l'opération est terminée, la réponse contient des informations sur l'effet de la requête.

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

En attente d'une opération

Si vous souhaitez bloquer l'exécution d'une opération, vous pouvez patienter jusqu'à son achèvement (ou pendant un délai que vous spécifiez).

Dans la commande ci-dessous, remplacez :

  • operation-name par le nom complet de votre opération. Le nom complet a le format suivant : projects/{project-id}/locations/us-central1/operations/{operation-id}. L'ID d'opération ne s'affiche pas dans la console Google Cloud.

  • timeout par le délai d'attente maximal exprimé en fractions de secondes, suivi d'un "s". Par exemple, "4.5s" entraîne le renvoi de la commande wait dans un délai de quatre secondes et demie si l'opération est toujours en cours d'exécution.

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

Annuler une opération

Vous pouvez annuler une tâche d'importation ou d'entraînement à l'aide de l'ID d'opération. La réussite de l'annulation n'est pas garantie. Si vous annulez une tâche d'entraînement, vous êtes toujours facturé de la durée d'entraînement utilisée.

Il n'est pas possible de supprimer une opération.

Dans la commande ci-dessous, remplacez operation-name par le nom complet de votre opération. Le nom complet a le format suivant : projects/{project-id}/locations/us-central1/operations/{operation-id}. L'ID d'opération ne s'affiche pas dans la console 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