Esta página descreve como gerir o ciclo de vida de uma operação de longa duração (LRO) em aplicações de IA.
É devolvido um objeto de operação de longa duração quando uma chamada
a um método pode demorar muito tempo a ser concluída. Por exemplo, a API AI Applications cria uma operação de longa duração quando chama
documents.import
através da API ou das bibliotecas cliente. A operação acompanha o estado da tarefa de processamento.
Pode usar os métodos de operações de execução longa fornecidos pela API AI Applications para verificar o estado das operações. Também pode listar ou sondar operações.
O registo de uma operação é mantido durante aproximadamente 30 dias após a conclusão da operação, o que significa que não pode ver nem listar uma operação após esse período.
Apresente operações de longa duração
O exemplo seguinte mostra como listar as operações de um recurso Google Cloud.
REST
Para listar as operações de longa duração de um Google Cloud recurso, siga este passo:
Chame o método
operations.list
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations"
DATA_STORE_ID
: o ID do repositório de dados das Aplicações de IA que foi criado com o seu motor. No Google Cloud URL da consola, o ID da loja de dados aparece depois deengines/
e antes de/data
.
Python
Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.
Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Veja detalhes acerca de uma operação de longa duração
O exemplo seguinte mostra como obter detalhes sobre uma operação.
REST
Para obter o estado e ver detalhes acerca de uma operação de longa duração, siga estes passos:
Encontre o nome da operação de uma das seguintes formas:
Depois de fazer uma chamada a um método que devolve uma operação de longa duração, reveja a resposta.
Por exemplo, se chamar
documents.import
, o início da resposta tem um aspeto semelhante a este:{ "operations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.ImportDocumentsMetadata", } } ] }
O valor
name
na resposta fornece o nome da operação, que pode ser usado para consultar o estado da operação. Não inclua as aspas quando copiar o nome da operação.Obtenha o nome da operação listando as operações de longa duração.
Chame o método
operations.get
no recurso que criou a operação:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"
OPERATION_NAME
: indique o nome da operação para a qual precisa de informações. Pode encontrar o nome da operação ao listar operações de longa duração.As primeiras linhas da resposta do comando
GET
têm um aspeto semelhante a este:{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.ImportDocumentsMetadata" } }
Python
Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.
Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Verifique uma operação de longa duração
O exemplo seguinte mostra como verificar o estado de uma operação.
REST
Para sondar a operação de longa duração até terminar, siga estes passos:
Execute o seguinte comando, que chama o método
operations.get
repetidamente, usando uma retirada de 10 segundos entre cada pedido:while true; \ do curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"; \ sleep 10; \ done
OPERATION_NAME
: indique o nome da operação que quer consultar. Pode encontrar o nome da operação ao listar operações de longa duração. Por exemplo,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789
.Pare a tarefa de sondagem (
Control+Z
) depois de o estado apresentar"done": true
.
Python
Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.
Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Cancele uma operação de longa duração
O exemplo seguinte mostra como cancelar uma operação:
REST
Para cancelar uma operação de longa duração, siga estes passos:
Chame o método
operations.cancel
:curl -X post \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME":cancel
OPERATION_NAME
: indique o nome da operação que quer cancelar. Pode encontrar o nome da operação ao listar operações de longa duração. Por exemplo,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789
.Após a chamada da API, o servidor tenta cancelar a operação. Os resultados que vê e as ações que pode realizar são os seguintes:
- Um erro com
"code": 400
e"status": "FAILED_PRECONDITION"
indica que não foi possível cancelar o pedido. Um cancelamento bem-sucedido resulta num objeto JSON vazio. Para validar o cancelamento:
- Use o método
operations.get
. Se a operação for cancelada com êxito, a resposta do método
operations.get
tem o erro"code": 1
, que representa o código de estadoCANCELLED
.Por exemplo:
{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata", "createTime": "2025-04-28T21:29:21.199190Z", "updateTime": "2025-04-28T21:31:29.076865Z" }, "done": true, "error": { "code": 1, "message": "Operation projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789 is cancelled." } }
- Use o método
- Um erro com
Python
Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.
Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.