En esta página, se describe cómo administrar el ciclo de vida de una operación de larga duración (LRO) en Agent Search.
Se muestra un objeto de operación de larga duración cuando una llamada
a un método puede tardar mucho tiempo en completarse. Por ejemplo, la API de Discovery Engine crea una operación de larga duración cuando llamas a
documents.import
a través de la API o las bibliotecas cliente. La operación realiza un seguimiento del estado del trabajo de procesamiento.
Puedes usar los métodos de operaciones de larga duración que proporciona la API de Discovery Engine para verificar el estado de las operaciones. También puedes enumerar o sondear operaciones.
El registro de una operación se conserva aproximadamente 30 días después de que esta finaliza, lo que significa que no puedes ver ni enumerar una operación después de ese tiempo.
Enumera las operaciones de larga duración
A continuación, se muestra cómo enumerar las operaciones de un Google Cloud recurso.
REST
Para enumerar las operaciones de larga duración de un Google Cloud recurso, sigue este paso:
Llama al
operations.listmétodo: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: Es el ID del almacén de datos de Agent Search que se creó con tu motor. En la URL de la consola de Google Cloud , el ID del almacén de datos aparece después deengines/y antes de/data.
Python
Para obtener más información, consulta la documentación de referencia de la API de PythonAgent Search.
Para autenticarte en Agent Search, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Obtén detalles sobre una operación de larga duración
A continuación, se muestra cómo obtener detalles sobre una operación.
REST
Para obtener el estado de una operación de larga duración y ver sus detalles, sigue estos pasos:
Encuentra el nombre de la operación de una de las siguientes maneras:
Después de realizar una llamada a un método que muestra una operación de larga duración, revisa la respuesta.
Por ejemplo, si llamas a
documents.import, el inicio de la respuesta se verá de la siguiente manera:{ "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", } } ] }El valor
namede la respuesta proporciona el nombre de la operación, que se puede usar para consultar el estado de la operación. No incluyas las comillas cuando copies el nombre de la operación.Para obtener el nombre de la operación, enumera las operaciones de larga duración.
Llama al
operations.getmétodo en el recurso que creó la operación:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"OPERATION_NAME: Proporciona el nombre de la operación para la que necesitas información. Para encontrar el nombre de la operación, enumera las operaciones de larga duración.Las primeras líneas de la respuesta del comando
GETse verán de la siguiente manera:{ "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 obtener más información, consulta la documentación de referencia de la API de PythonAgent Search.
Para autenticarte en Agent Search, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Sondea una operación de larga duración
A continuación, se muestra cómo sondear el estado de una operación.
REST
Para sondear la operación de larga duración hasta que finalice, sigue estos pasos:
Ejecuta el siguiente comando, que llama al
operations.getmétodo de forma repetida, con una retirada de 10 segundos entre cada solicitud:while true; \ do curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"; \ sleep 10; \ doneOPERATION_NAME: Proporciona el nombre de la operación que deseas sondear. Para encontrar el nombre de la operación, enumera las operaciones de larga duración. Por ejemplo,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789.Detén el trabajo de sondeo (
Control+Z) después de que el estado muestre"done": true.
Python
Para obtener más información, consulta la documentación de referencia de la API de PythonAgent Search.
Para autenticarte en Agent Search, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Cancela una operación de larga duración
A continuación, se muestra cómo cancelar una operación:
REST
Para cancelar una operación de larga duración, sigue estos pasos:
Llama al
operations.cancelmétodo:curl -X post \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME":cancelOPERATION_NAME: Proporciona el nombre de la operación que deseas cancelar. Para encontrar el nombre de la operación, enumera las operaciones de larga duración. Por ejemplo,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789.Después de realizar la llamada a la API, el servidor intenta cancelar la operación. Los resultados que ves y las acciones que puedes realizar son los siguientes:
- Un error con
"code": 400y"status": "FAILED_PRECONDITION"indica que no se pudo cancelar la solicitud. Una cancelación correcta da como resultado un objeto JSON vacío. Para verificar la cancelación, haz lo siguiente:
- Usa el
operations.getmétodo. Si la operación se cancela correctamente, la respuesta del
operations.getmétodo tiene el error"code": 1, que representa elCANCELLEDcódigo de estado.Por ejemplo:
{ "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." } }
- Usa el
- Un error con
Python
Para obtener más información, consulta la documentación de referencia de la API de PythonAgent Search.
Para autenticarte en Agent Search, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.