Gestione di operazioni a lunga esecuzione

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

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 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, 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 della località in cui viene eseguito l'LRO.

Se disponi configurare l'interfaccia a riga di comando gcloud, quindi 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. Console Google Cloud non contiene tutti i dettagli di un LRO che sono disponibili quando si utilizza gcloud CLI e si chiamano 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 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 dell'operazione.

Per ottenere i dettagli sull'LRO, esegui 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 conoscere lo stato di un LRO e visualizzarne i dettagli, chiama il 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 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 l'app 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 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 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 l'app 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 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 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 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 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 l'app 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:

{}