En esta página, se describe cómo administrar el ciclo de vida de una operación de larga duración (LRO) de la API de Cloud Life Sciences.
Las operaciones de larga duración se muestran cuando las llamadas a un método pueden tardar mucho tiempo en completarse.
La API de Cloud Life Sciences crea una LRO cada vez que llamas a projects.locations.pipelines.run
o gcloud beta lifesciences pipelines run
.
La LRO realiza un seguimiento del estado de la canalización.
Puedes usar las API de operaciones que proporciona la API de Cloud Life Sciences para verificar el estado de las LRO. También puedes enumerar, sondear o cancelar las LRO.
Cuando se llama directamente a la API de Cloud Life Sciences, las LRO se administran a nivel del proyecto de Google Cloud y de la ubicación. Cuando realices una solicitud a la LRO directamente, incluye el proyecto de Google Cloud y la ubicación en la que se ejecuta la LRO.
Si configuraste la CLI de gcloud, cuando llames a la API de Cloud Life Sciences con la CLI de gcloud, tu solicitud a la LRO solo debe contener el identificador de operación. El ID del proyecto de Google Cloud y la ubicación donde se ejecuta la LRO se deducen a partir del ID de la operación.
Puedes administrar tus LRO de Cloud Life Sciences con Google Cloud Console, Google Cloud CLI o llamando directamente a la API. La consola de Google Cloud no contiene todos los detalles sobre una LRO que están disponibles cuando se usa gcloud CLI y se llama directamente a la API de Cloud Life Sciences.
El registro de una LRO se conserva aproximadamente 30 días después de que esta finaliza, lo que significa que no puedes ver ni enumerar una LRO después de ese punto.
Obtén detalles sobre una operación de larga duración
En los siguientes ejemplos, se muestra cómo obtener detalles sobre una LRO.
Console
- En la consola de Google Cloud, ve a la página Canalizaciones de Life Sciences.
- Se muestra una lista de las LRO y su estado. Busca la LRO que deseas ver y consulta su estado. Los valores posibles de la columna Estado son Activa, Completada y Con errores.
gcloud
Supongamos que recibes la siguiente respuesta después de llamar a gcloud beta lifesciences pipelines run
:
Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].
La respuesta muestra que la API de Cloud Life Sciences creó una LRO con un ID de operación.
Para obtener detalles sobre la LRO, ejecuta el comando gcloud beta lifesciences operations describe
y especifica el ID de operación.
gcloud beta lifesciences operations describe OPERATION_ID
También puedes recuperar el ID de la operación si enumeras las operaciones de larga duración de la base de datos.
Si la solicitud se realiza correctamente, el símbolo del sistema muestra los detalles de la operación. El resultado que se muestra aquí se tomó de la operación de canalización en la Guía de inicio rápido.
API
Para obtener el estado y ver los detalles de una LRO, llama al método projects.locations.operations.get
.
REST
Supongamos que recibes la siguiente respuesta después de llamar a projects.locations.pipelines.run
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
El valor name
de la respuesta muestra que la API de Cloud Life Sciences creó una LRO llamada projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
.
También puedes recuperar el nombre de la LRO si enumeras las operaciones de larga duración.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: la ubicación donde se ejecuta la LRO
- OPERATION_ID: el identificador de la LRO
Método HTTP y URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
Explorador de API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Enumera las operaciones de larga duración
En los siguientes ejemplos, se muestra cómo enumerar las LRO de un proyecto de Google Cloud y una ubicación.
Console
- En la consola de Google Cloud, ve a la página de canalizaciones de Life Sciences.
- Se muestra una lista de las LRO y su estado. Los valores posibles de la columna Estado son Activa, Completada y Con errores.
gcloud
Para mostrar una lista de las LRO de un proyecto de Google Cloud y una ubicación, ejecuta el comando gcloud beta lifesciences operations list
.
gcloud beta lifesciences operations list
Si la solicitud se realiza correctamente, el símbolo del sistema enumera las LRO:
ID LOCATION DONE OPERATION_ID LOCATION {TRUE|FALSE} ...
API
Para mostrar una lista de las LRO de un proyecto de Google Cloud y una ubicación, llama al método projects.locations.operations.list
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: la ubicación en la que se ejecutan una o más LRO
Método HTTP y URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content
Explorador de API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "operations": [ { "name": "PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.lifesciences.v2beta.Metadata", "pipeline": { ... } "createTime": "CREATE_TIME", "startTime": "START_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "type.googleapis.com/cloud.lifesciences.pipelines.RunPipelineResponse" } }, ... ] }
Cómo sondear una operación de larga duración
En los siguientes ejemplos, se muestra cómo sondear el estado de una LRO.
Console
- En la consola de Google Cloud, ve a la página Canalizaciones de Life Sciences.
- Se muestra una lista de las LRO y su estado. Haz clic en el ícono Actualizar para ver el estado actualizado de una LRO.
gcloud
Después de iniciar una canalización, puedes sondear la LRO; para ello, ejecuta el comando gcloud beta lifesciences operations wait
.
gcloud beta lifesciences operations wait OPERATION_ID
Si la solicitud se realiza correctamente, el símbolo del sistema muestra lo siguiente:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...
Cuando la operación finaliza, el símbolo del sistema muestra lo siguiente:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...done.
API
Para sondear una LRO, llama de forma reiterada al método projects.locations.operations.get
hasta que finalice la operación. Usa una retirada entre cada solicitud de sondeo, por ejemplo, 10 segundos.
Antes de usar cualquiera de los datos de solicitud que aparecen a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID del proyecto de Google Cloud
- LOCATION: la ubicación donde se ejecuta la LRO
- OPERATION_ID: el identificador de la LRO
Método HTTP y URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando para sondear el estado de una LRO cada 10 segundos:
while true; \ do curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"; \ sleep 10; \ done
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
El resultado que se muestra aquí se tomó de la operación de canalización en la Guía de inicio rápido.
Cuando la operación finalice, la respuesta contendrá "done": true
y un valor en el campo endTime
.
PowerShell
Ejecuta el siguiente comando para sondear el estado de una LRO cada diez segundos:
$cred = gcloud auth print-access-token $headers = @{ Authorization = "Bearer $cred" } Do { Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content sleep 10 } while ($true)
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
El resultado que se muestra aquí se tomó de la operación de canalización en la Guía de inicio rápido.
Cuando la operación finalice, la respuesta contendrá "done": true
y un valor en el campo endTime
.
Cómo cancelar una operación de larga duración
En los siguientes ejemplos, se muestra cómo cancelar una LRO mientras se ejecuta.
Console
- En la consola de Google Cloud, ve a la página de canalizaciones de Life Sciences.
- Haz clic en el ID de la LRO que deseas cancelar.
- Haz clic en el ícono Cancelar.
gcloud
Para cancelar una LRO, ejecuta el comando gcloud beta lifesciences operations cancel
.
gcloud beta lifesciences operations cancel OPERATION_ID
Si la solicitud se realiza correctamente, aparecerá un mensaje de cancelación:
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y
Para confirmar, escribe Y. Después de que confirmas la cancelación, la respuesta muestra un cuerpo vacío.
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y {}
API
Para cancelar una LRO, llama al método projects.locations.operations.cancel
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: la ubicación donde se ejecuta la LRO
- OPERATION_ID: el identificador de la LRO
Método HTTP y URL:
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
Explorador de API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{}