Como gerenciar operações de longa duração

Esta página descreve como gerenciar o ciclo de vida de uma operação de longa duração (LRO, em inglês) da API Cloud Life Sciences.

As Operações de longa duração são retornadas quando as chamadas de método demoraram muito para serem concluídas. A API Cloud Life Sciences cria uma LRO sempre que você chamar projects.locations.pipelines.run ou gcloud beta lifesciences pipelines run. A LRO acompanha o status do pipeline.

É possível usar as APIs de operações que a API Cloud Life Sciences fornece para verificar o status das LROs. Também é possível listar, pesquisar ou cancelar LROs.

Ao chamar a API Cloud Life Sciences diretamente, as LROs são gerenciadas no nível local e do projeto do Google Cloud. Ao fazer uma solicitação à LRO diretamente, inclua o projeto do Google Cloud e o local em que a LRO está sendo executada.

Se você tiver configurado a CLI gcloud, sua solicitação para a LRO só precisará conter o identificador de operação, quando você chamar a API Cloud Life Sciences usando a CLI gcloud. O ID do projeto do Google Cloud e o local em que a LRO está em execução são inferidos a partir do código da operação.

É possível gerenciar suas LROs do Cloud Life Sciences usando o console do Google Cloud, a Google Cloud CLI ou chamando a API diretamente. Console do Google Cloud não contém todos os detalhes sobre uma LRO que estão disponíveis ao usar a CLI gcloud e chamar a API Cloud Life Sciences.

O registro de uma LRO é mantido por, aproximadamente, 30 dias após a conclusão da LRO. Isso significa que não é possível visualizar ou listar uma LRO após esse período.

Como acessar os detalhes sobre uma operação de longa duração

Os exemplos a seguir mostram como acessar os detalhes de uma LRO.

Console

  1. No console do Google Cloud, acesse a página "Life Sciences Pipelines".

    Ir para a página Life Sciences Pipelines

  2. Uma lista de LROs e as telas de status. Encontre a LRO que você está procurando e visualize o status dela. Os valores possíveis para a coluna Status são Em execução, Concluída e Falha.

gcloud

Suponhamos que você receba a seguinte resposta após chamar gcloud beta lifesciences pipelines run:

Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].

A resposta mostra que a API Cloud Life Sciences criou uma LRO com um ID de operação.

Para acessar os detalhes da LRO, execute o comando gcloud beta lifesciences operations describe, especificando o ID da operação.

gcloud beta lifesciences operations describe OPERATION_ID

Também é possível recuperar o ID de operação listando operações de banco de dados de longa duração.

Se a solicitação for bem-sucedida, o prompt de comando exibirá os detalhes da operação. O resultado exibido aqui é retirado da operação de pipeline na guia de início rápido.

API

Para acessar o status e visualizar os detalhes de uma LRO, chame o método projects.locations.operations.get.

REST

Suponhamos que você receba a seguinte resposta após chamar projects.locations.pipelines.run:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID"
}

O valor name na resposta mostra que a API Cloud Life Sciences criou uma LRO denominada projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.

Também é possível recuperar o nome da LRO listando operações de longa duração.

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

  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • LOCATION: o local onde a LRO está sendo executada
  • OPERATION_ID: o identificador da LRO

Método HTTP e URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

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

curl

execute o seguinte 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

execute o seguinte 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

APIs Explorer

Abra o página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.

Você receberá uma resposta JSON semelhante a seguinte. O resultado exibido aqui é retirado da operação de pipeline na guia de início rápido.

Como listar operações de longa duração

Os exemplos a seguir mostram como listar as LROs em um projeto e um local do Google Cloud.

Console

  1. No console do Google Cloud, acesse a página "Life Sciences Pipelines".

    Ir para a página Life Sciences Pipelines

  2. Uma lista de LROs e as telas de status. Os valores possíveis para a coluna Status são Em execução, Concluída e Falha.

gcloud

Para listar as LROs em um projeto e local do Google Cloud, execute o comando gcloud beta lifesciences operations list.

gcloud beta lifesciences operations list

Se a solicitação for bem-sucedida, o prompt de comando listará as LROs:

ID                    LOCATION     DONE
OPERATION_ID          LOCATION       {TRUE|FALSE}
...

API

Para listar as LROs em um projeto e local do Google Cloud, chame o método projects.locations.operations.list.

REST

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

  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • LOCATION: o local onde uma ou mais LROs estão sendo executadas

Método HTTP e URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations

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

curl

execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations"

PowerShell

execute o seguinte 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

APIs Explorer

Abra o página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
      }
    },
    ...
  ]
}

Como pesquisar uma operação de longa duração

Os exemplos a seguir mostram como consultar o status de uma LRO.

Console

  1. No console do Google Cloud, acesse a página "Life Sciences Pipelines".

    Ir para a página Life Sciences Pipelines

  2. Uma lista de LROs e as telas de status. Clique no ícone Atualizar para ver o status atualizado de uma LRO.

gcloud

Após iniciar um pipeline, é possível pesquisar a LRO executando o comando gcloud beta lifesciences operations wait.

gcloud beta lifesciences operations wait OPERATION_ID

Se a solicitação for bem-sucedida, o prompt de comando exibirá o seguinte:

Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...

Quando a operação for concluída, o prompt de comando exibirá o seguinte:

Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...done.

API

Para pesquisar uma LRO, chame repetidamente o método projects.locations.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de pesquisa. Por exemplo, pesquise a cada 10 segundos.

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

  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • LOCATION: o local onde a LRO está sendo executada
  • OPERATION_ID: o identificador da LRO

Método HTTP e URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

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

curl

Execute o seguinte comando para pesquisar o status de uma LRO a 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

Você receberá uma resposta JSON semelhante a seguinte. O resultado exibido aqui é retirado da operação de pipeline na guia de início rápido. Quando a operação for concluída, a resposta conterá "done": true e um valor no campo endTime.

PowerShell

Execute o seguinte comando para pesquisar o status de uma LRO a cada 10 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)

Você receberá uma resposta JSON semelhante a seguinte. O resultado exibido aqui é retirado da operação de pipeline na guia de início rápido. Quando a operação for concluída, a resposta conterá "done": true e um valor no campo endTime.

Como cancelar uma operação de longa duração

As amostras a seguir mostram como cancelar uma LRO enquanto ela está em execução.

Console

  1. No console do Google Cloud, acesse a página "Life Sciences Pipelines".

    Ir para a página Life Sciences Pipelines

  2. Clique no ID da LRO que você quer cancelar.
  3. Clique no ícone Cancelar.

gcloud

Para cancelar uma LRO, execute o comando gcloud beta lifesciences operations cancel.

gcloud beta lifesciences operations cancel OPERATION_ID

Se a solicitação for bem-sucedida, um aviso de cancelamento será exibido:

Operation [OPERATION_ID] will be canceled.

Do you want to continue (Y/n)?  Y

Para confirmar, digite Y. Depois de confirmar o cancelamento, a resposta retornará um corpo vazio.

Operation [OPERATION_ID] will be canceled.

Do you want to continue (Y/n)?  Y

{}

API

Para cancelar uma LRO, chame o método projects.locations.operations.cancel.

REST

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

  • PROJECT_ID: é o ID do projeto do Google Cloud.
  • LOCATION: o local onde a LRO está sendo executada
  • OPERATION_ID: o identificador da LRO

Método HTTP e URL:

POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel

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

curl

execute o seguinte 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

execute o seguinte 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

APIs Explorer

Abra o página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.

Você receberá uma resposta JSON semelhante a esta:

{}