Administrar operaciones de larga duración

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

  1. En la consola de Google Cloud, ve a la página Canalizaciones de Life Sciences.

    Ir a la página de canalizaciones de Life Sciences

  2. 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.

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.

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

  1. En la consola de Google Cloud, ve a la página de canalizaciones de Life Sciences.

    Ir a la página de canalizaciones de Life Sciences

  2. 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

  1. En la consola de Google Cloud, ve a la página Canalizaciones de Life Sciences.

    Ir a la página de canalizaciones de Life Sciences

  2. 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

  1. En la consola de Google Cloud, ve a la página de canalizaciones de Life Sciences.

    Ir a la página de canalizaciones de Life Sciences

  2. Haz clic en el ID de la LRO que deseas cancelar.
  3. 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:

{}