Operações de longa duração

Para algumas chamadas de API, a Vertex AI retorna nomes de operação. Essas chamadas de API iniciam operações que exigem tempo para serem concluídas e são conhecidas como operações de longa duração. Por exemplo, criar um conjunto de dados, excluir um endpoint ou exportar um modelo são operações de longa duração. Use métodos auxiliares com um nome de operação para receber o status ou cancelar uma operação de longa duração, conforme descrito nas seções a seguir.

Como saber o status de uma operação

Para ver o status da operação, use o nome da operação que estava na resposta quando você solicitou uma operação de longa duração. Por exemplo, quando você cria um conjunto de dados, a Vertex AI retorna um nome de operação como:
projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

É possível pesquisar a operação em intervalos regulares para saber quando uma operação for concluída.

REST e LINHA DE CMD

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • OPERATION_NAME: o nome da operação retornado quando você inicia uma operação de longa duração, como projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

Método HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME

Para enviar a solicitação, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME" | Select-Object -Expand Content

Na saída, o objeto metadata contém informações específicas do tipo de solicitação. O campo done indica se a operação foi concluída. Se a operação estiver concluída, o objeto response conterá resultados da operação.

{
  "name": "projects/123456789012/locations/us-central1/datasets/1234567890123456789/operations/1223344556677889900",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateDatasetOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-12T16:00:44.686500Z",
      "updateTime": "2020-10-12T16:01:06.115081Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.Dataset",
    "name": "projects/123456789012/locations/us-central1/datasets/1234567890123456789",
    "displayName": "image_dataset",
    "metadataSchemaUri": "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml",
    "labels": {
      "aiplatform.googleapis.com/dataset_metadata_schema": "IMAGE"
    },
    "metadata": {
      "dataItemSchemaUri": "gs://google-cloud-aiplatform/schema/dataset/dataitem/image_1.0.0.yaml"
    }
  }
}

Como cancelar uma operação

É possível cancelar uma operação de longa duração para interrompê-la antes que ela seja concluída. Quando uma operação é cancelada com sucesso, ela não é excluída. Em vez disso, a operação é interrompida com um código de erro 1 e com uma mensagem CANCELLED. O cancelamento não é garantido.

REST e LINHA DE CMD

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • OPERATION_NAME: o nome da operação retornado quando você inicia uma operação de longa duração, como projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel

Para enviar a solicitação, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.