Gestione di operazioni a lunga esecuzione

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

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. LRO monitora lo stato della pipeline.

Puoi usare le API delle operazioni fornite dall'API Cloud Life Sciences per verificare stato degli LRO. Puoi anche list, polling, oppure annulla gli LRO.

Quando chiami direttamente l'API Cloud Life Sciences, le ROL vengono gestite a livello di progetto e posizione Google Cloud. 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 posizione in cui viene eseguita l'operazione a lunga esecuzione 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 di un LRO disponibili quando utilizzi l'interfaccia a riga di comando gcloud e chiami direttamente l'API Cloud Life Sciences.

Il registro di un LRO viene conservato per circa 30 giorni dopo l'LRO non sarà possibile visualizzare o elencare un LRO successivamente.

Recupero dei dettagli su 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 delle pipeline di Life Sciences

  2. Viene visualizzato un elenco di LRO e il relativo stato. Trova l'ROL che stai cercando e visualizza il relativo stato. I valori possibili per la colonna Stato sono In esecuzione, Completato e 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 dell'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 elenca 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 viene preso 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

Supponi 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 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. Sul lato destro della pagina si apre il riquadro Explorer API. 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 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 Pipeline per le scienze biologiche

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

gcloud

Per elencare gli LRO in un progetto Google Cloud e nelle località, esegui 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 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, effettua 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. Sul lato destro della pagina si apre il riquadro Esplora API. 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 di Life Sciences.

    Vai alla pagina Pipeline per le scienze biologiche

  2. Viene visualizzato un elenco di LRO 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 gcloud beta lifesciences operations wait .

gcloud beta lifesciences operations wait OPERATION_ID

Se la richiesta riesce, 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 visualizza 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 sondaggio ad esempio 10 secondi.

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

  • PROJECT_ID: l'ID del tuo 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 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 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 mentre è in esecuzione.

Console

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

    Vai alla pagina Pipeline per le scienze biologiche

  2. Fai clic sull'ID dell'operazione di eliminazione di risorse che vuoi annullare.
  3. Fai clic sull'icona Annulla.

gcloud

Per annullare un LRO, esegui 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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora 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:

{}