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 le chiamate ai metodi potrebbero richiedere molto tempo per essere completate. 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 di operazioni fornite dall'API Cloud Life Sciences per controllare il stato delle ROL. Puoi anche elencare, sondare o annullare le RLO.

Quando chiami direttamente l'API Cloud Life Sciences, le ROL vengono gestite a livello di progetto e posizione Google Cloud. Quando effettui una richiesta direttamente all'LRO, includi il progetto Google Cloud e la posizione in cui è in esecuzione 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 posizione in cui viene eseguita l'operazione a lunga esecuzione vengono dedotti dall'ID operazione.

Puoi gestire gli oggetti 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 di un LRO disponibili quando utilizzi l'interfaccia alla gcloud CLI e chiami direttamente l'API Cloud Life Sciences.

Il record di un'LRO viene conservato per circa 30 giorni dal termine dell'LRO, il che significa che non puoi visualizzare o elencare un'LRO dopo questo periodo.

Visualizzare i dettagli di un'operazione a lunga esecuzione

Gli esempi riportati di seguito mostrano come recuperare i dettagli di un LRO.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline per le scienze della vita.

    Vai alla pagina Pipeline per le scienze biologiche

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

gcloud

Supponiamo che tu riceva 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 visualizzare i dettagli dell'operazione a lunga esecuzione, 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 elencando le operazioni di database a lunga esecuzione.

Se la richiesta va a buon fine, il prompt dei comandi mostra i dettagli dell'operazione. L'output mostrato qui è tratto dall'operazione della pipeline nella guida rapida.

API

Per ottenere lo stato e visualizzare i dettagli di un'operazione di recupero delle risorse, chiama il metodo projects.locations.operations.get.

REST

Supponiamo che tu riceva 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 dell'operazione a lunga esecuzione elencando le operazioni a lunga esecuzione.

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

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la posizione in cui è in esecuzione l'operazione 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. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente. L'output mostrato qui è tratto dall'operazione della pipeline nella guida rapida.

Elenco delle operazioni a lunga esecuzione

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

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline per le scienze della vita.

    Vai alla pagina Pipeline per le scienze biologiche

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

gcloud

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

gcloud beta lifesciences operations list

Se la richiesta va a buon fine, il prompt dei comandi elenca le ROL:

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

API

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

REST

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

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la posizione 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. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Compila 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"
      }
    },
    ...
  ]
}

Eseguire il polling di un'operazione a lunga esecuzione

Gli esempi riportati di seguito mostrano come eseguire il polling dello stato di un LRO.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline per le scienze della vita.

    Vai alla pagina Pipeline per le scienze biologiche

  2. Viene visualizzato un elenco di OLR e il relativo stato. Fai clic sull'icona Aggiorna per visualizzare lo stato aggiornato di un'operazione di recupero locale.

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 va a buon fine, il prompt dei comandi mostra quanto segue:

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

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

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

API

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

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

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la posizione in cui è in esecuzione l'operazione 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 il seguente comando per eseguire il polling dello stato di un LRO ogni 10 secondi:

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 è tratto dall'operazione della pipeline nella guida rapida. Al termine dell'operazione, la risposta conterrà "done": true e un valore nel campo endTime.

PowerShell

Esegui il seguente comando per eseguire il polling dello stato di un LRO ogni dieci secondi:

$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 è tratto 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 durante l'esecuzione.

Console

  1. Nella console Google Cloud, vai alla pagina Pipeline per le scienze della vita.

    Vai alla pagina Pipeline per le scienze biologiche

  2. Fai clic sull'ID dell'ROL 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 va a buon fine, 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, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la posizione in cui è in esecuzione l'operazione 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. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente:

{}