Como trabalhar com operações de longa duração

Nesta página, você aprenderá como usar o Cloud AutoML para processar operações de longa duração no AutoML Tables.

Introdução

Algumas operações no AutoML Tables levam algum tempo para serem concluídas:

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

É possível fechar a janela do navegador sem afetar a operação, se você estiver usando o Console do Google Cloud. O painel é atualizado quando a operação é concluída.

Quando você faz uma chamada de API que leva muito tempo para ser concluída, a chamada inicial retorna imediatamente, mesmo que a operação ainda esteja sendo executada. Há alguns métodos auxiliares que podem ser usados para determinar o status de uma operação de longa duração.

O AutoML Tables envia aos proprietários do projeto um e-mail quando as operações de longa duração são concluídas.

Como pesquisar o status de uma operação

É possível pesquisar o status de uma operação de longa duração. Essa abordagem não bloqueia o programa, mas é necessário que você continue pesquisando até que a operação seja concluída.

Para ver o status da operação, use o ID recebido na resposta quando você iniciou a operação. O ID da operação não é exibido no Console do Google Cloud.

No comando abaixo, substitua operation-name pelo nome completo da operação. O nome completo tem o 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

Para operações de importação, é exibida uma saída similar à seguinte: na saída, há um objeto metadata com informações específicas ao tipo de solicitação. O campo done mostra se a operação foi concluída ou não. Se a operação estiver concluída, a resposta conterá informações sobre o efeito da solicitação.

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

Como alterar o tempo de espera de uma operação

Se você quiser bloquear a execução na operação, aguarde a conclusão dela ou especifique um tempo limite.

No comando abaixo, substitua:

  • operation-name pelo nome completo da operação. O nome completo tem o formato projects/{project-id}/locations/us-central1/operations/{operation-id}. O ID da operação não é exibido no Console do Google Cloud.

  • timeout pelo tempo máximo que você quer esperar, em (fracionário) segundos, encerrado por "s". Por exemplo, inserir “4,5s” faz com que o comando de espera retorne em 4,5 segundos se a operação ainda estiver sendo executada.

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

Como cancelar uma operação

É possível cancelar uma tarefa de importação ou treinamento, basta usar o ID da operação. Não há garantia de que a operação será realmente cancelada. Se você cancelar uma tarefa de treinamento, ainda será cobrado por qualquer tempo de treinamento usado.

Não é possível cancelar uma operação.

No comando abaixo, substitua operation-name pelo nome completo da operação. O nome completo tem o formato projects/{project-id}/locations/us-central1/operations/{operation-id}. O ID da operação não é exibido no Console do 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