Gestione di operazioni a lunga esecuzione

Questa pagina descrive come gestire il ciclo di vita di un'operazione a lunga esecuzione (LRO) dell'API Cloud Life Sciences.

Le operazioni a lunga esecuzione vengono restituite quando il completamento delle chiamate ai metodi può richiedere molto tempo. L'API Cloud Life Sciences crea un LRO ogni volta che chiami projects.locations.pipelines.run o gcloud beta lifesciences pipelines run. L'LRO monitora lo stato della pipeline.

Puoi utilizzare le API operative fornite dall'API Cloud Life Sciences per controllare lo stato degli LRO. Puoi anche elencare, effettuare un sondaggio o annullare gli LRO.

Quando chiami direttamente l'API Cloud Life Sciences, gli LRO vengono gestiti a livello di progetto Google Cloud e località. Quando invii una richiesta direttamente all'LRO, includi il progetto Google Cloud e la località in cui viene eseguito l'LRO.

Se hai configurato gcloud CLI, quando chiami l'API Cloud Life Sciences utilizzando gcloud CLI, la tua richiesta all'LRO deve contenere solo l'identificatore dell'operazione. L'ID progetto Google Cloud e la località in cui viene eseguito l'LRO vengono dedotti dall'ID operazione.

Puoi gestire gli LRO di Cloud Life Sciences utilizzando la console Google Cloud, Google Cloud CLI o chiamando direttamente l'API. La console Google Cloud non contiene tutti i dettagli relativi a un LRO disponibili quando si utilizza gcloud CLI e si chiama direttamente l'API Cloud Life Sciences.

Il record di un LRO viene conservato per circa 30 giorni dopo il suo completamento, il che significa che non puoi visualizzare o elencare un LRO dopo questo punto.

Recupero dei dettagli su un'operazione a lunga esecuzione

Gli esempi riportati di seguito mostrano come ottenere dettagli su un LRO.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline di Life Sciences.

    Vai alla pagina delle pipeline di Life Sciences

  2. Viene visualizzato un elenco di LRO con il relativo stato. Trova l'LRO che stai cercando e visualizzane lo stato. I valori possibili per la colonna Stato sono In esecuzione, Completato e Non riuscito.

gcloud

Supponiamo di ricevere la seguente risposta dopo aver chiamato gcloud beta lifesciences pipelines run:

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

La risposta mostra che l'API Cloud Life Sciences ha creato un LRO con un ID operazione.

Per ottenere dettagli sull'LRO, esegui il comando gcloud beta lifesciences operations describe specificando l'ID operazione.

gcloud beta lifesciences operations describe OPERATION_ID

Puoi anche recuperare l'ID operazione elenca le operazioni di database a lunga esecuzione.

Se la richiesta ha esito positivo, il prompt dei comandi visualizza i dettagli dell'operazione. L'output mostrato qui viene preso dall'operazione della pipeline nella Guida rapida.

API

Per ottenere lo stato di un LRO e visualizzarne i dettagli, chiama il metodo projects.locations.operations.get.

REST

Supponiamo di ricevere la seguente risposta dopo aver chiamato projects.locations.pipelines.run:

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

Il valore name nella risposta indica che l'API Cloud Life Sciences ha creato un LRO denominato projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.

Puoi anche recuperare il nome LRO elenca le operazioni a lunga esecuzione.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località in cui viene eseguito l'LRO
  • OPERATION_ID: l'identificatore dell'LRO

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo 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

Esegui questo 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

Explorer API

Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente. L'output mostrato qui viene preso dall'operazione della pipeline nella Guida rapida.

Elenco delle operazioni a lunga esecuzione

Gli esempi riportati di seguito mostrano come elencare gli LRO in un progetto Google Cloud e in una località.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline di Life Sciences.

    Vai alla pagina delle pipeline di Life Sciences

  2. Viene visualizzato un elenco di LRO con il relativo stato. I valori possibili per la colonna Stato sono In esecuzione, Completato e Non riuscito.

gcloud

Per elencare gli LRO in un progetto Google Cloud e in una località, esegui il comando gcloud beta lifesciences operations list.

gcloud beta lifesciences operations list

Se la richiesta ha esito positivo, il prompt dei comandi elenca gli LRO:

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

API

Per elencare gli LRO in un progetto e una località Google Cloud, chiama il metodo projects.locations.operations.list.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località in cui sono in esecuzione uno o più LRO

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo comando:

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

PowerShell

Esegui questo 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

Explorer API

Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente:

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

Polling di un'operazione a lunga esecuzione

I seguenti esempi mostrano come eseguire il polling dello stato di un LRO.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline di Life Sciences.

    Vai alla pagina delle pipeline di Life Sciences

  2. Viene visualizzato un elenco di LRO con il relativo stato. Fai clic sull'icona Aggiorna per visualizzare lo stato aggiornato di un LRO.

gcloud

Dopo aver avviato una pipeline, puoi eseguire il polling dell'LRO eseguendo il comando gcloud beta lifesciences operations wait.

gcloud beta lifesciences operations wait OPERATION_ID

Se la richiesta ha esito positivo, il prompt dei comandi visualizza quanto segue:

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

Al termine dell'operazione, il prompt dei comandi visualizza quanto segue:

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

API

Per eseguire il polling di un LRO, chiama ripetutamente il metodo projects.locations.operations.get fino al termine dell'operazione. Usa un backoff tra ogni richiesta di sondaggio, ad esempio 10 secondi.

Prima di utilizzare i seguenti dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località in cui viene eseguito l'LRO
  • OPERATION_ID: l'identificatore dell'LRO

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo comando ogni 10 secondi per verificare lo stato di un LRO:

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

Dovresti ricevere una risposta JSON simile alla seguente. L'output mostrato qui viene preso dall'operazione della pipeline nella Guida rapida. Al termine dell'operazione, la risposta conterrà "done": true e un valore nel campo endTime.

PowerShell

Esegui questo comando ogni dieci secondi per verificare lo stato di un LRO:

$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)

Dovresti ricevere una risposta JSON simile alla seguente. L'output mostrato qui viene preso dall'operazione della pipeline nella Guida rapida. Al termine dell'operazione, la risposta conterrà "done": true e un valore nel campo endTime.

Annullamento di un'operazione a lunga esecuzione

Gli esempi riportati di seguito mostrano come annullare un LRO mentre è in esecuzione.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline di Life Sciences.

    Vai alla pagina delle pipeline di Life Sciences

  2. Fai clic sull'ID dell'LRO che vuoi annullare.
  3. Fai clic sull'icona Annulla.

gcloud

Per annullare un LRO, esegui il comando gcloud beta lifesciences operations cancel.

gcloud beta lifesciences operations cancel OPERATION_ID

Se la richiesta ha esito positivo, viene visualizzato un messaggio di annullamento:

Operation [OPERATION_ID] will be canceled.

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

Per confermare, digita Y. Dopo aver confermato l'annullamento, la risposta restituisce un corpo vuoto.

Operation [OPERATION_ID] will be canceled.

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

{}

API

Per annullare un LRO, chiama il metodo projects.locations.operations.cancel.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località in cui viene eseguito l'LRO
  • OPERATION_ID: l'identificatore dell'LRO

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo 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

Esegui questo 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

Explorer API

Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente:

{}