Gérer les opérations de longue durée

Cette page explique comment gérer le cycle de vie d'une opération de longue durée (LRO) de l'API Cloud Life Sciences.

Des opérations de longue durée sont renvoyées lorsque des appels de méthode peuvent prendre un certain temps. L'API Cloud Life Sciences crée une opération de longue durée chaque fois que vous appelez projects.locations.pipelines.run ou gcloud beta lifesciences pipelines run. L'opération de longue durée surveille l'état du pipeline.

Vous pouvez vérifier l'état des opérations de longue durée à l'aide des API d'opérations fournies par l'API Cloud Life Sciences. Vous pouvez également répertorier, interroger ou annuler des opérations de longue durée.

Lorsque vous appelez directement l'API Cloud Life Sciences, les opérations de longue durée sont gérées au niveau du projet Google Cloud et de l'emplacement. Lorsque vous envoyez directement une requête à l'opération de longue durée, incluez le projet Google Cloud et l'emplacement dans lequel l'opération s'exécute.

Si vous avez configuré l'outil gcloud, votre requête à l'opération de longue durée ne doit contenir que l'identifiant de l'opération lorsque vous appelez l'API Cloud Life Sciences via l'outil gcloud. L'ID de projet Google Cloud et l'emplacement d'exécution de l'opération de longue durée sont déduits à partir de l'ID d'opération.

Vous pouvez gérer vos opérations de longue durée Cloud Life Sciences à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou en appelant directement l'API. Cloud Console fournit moins d'informations sur les opérations de longue durée que l'outil gcloud ou l'API Cloud Life Sciences.

L'enregistrement associé à une opération de longue durée est conservé pendant environ 30 jours après son exécution, ce qui signifie que vous ne pouvez pas afficher ni répertorier une opération de longue durée après cette date.

Obtenir les détails d'une opération de longue durée

Les exemples suivants montrent comment afficher les détails d'une opération de longue durée.

Console

  1. Dans Cloud Console, accédez à la page "Pipelines" de l'onglet "Sciences de la vie".

    Accéder à la page "Pipelines" de l'onglet "Sciences de la vie"

  2. Les opérations de longue durée et leur état s'affichent. Localisez l'opération de longue durée que vous recherchez et consultez son état. Les valeurs possibles pour la colonne État sont En cours d'exécution, Terminée et Échouée.

gcloud

Supposons que vous receviez la réponse suivante après avoir appelé gcloud beta lifesciences pipelines run :

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

La réponse indique que l'API Cloud Life Sciences a créé une opération de longue durée avec un ID d'opération.

Pour obtenir les détails de l'opération de longue durée, exécutez la commande gcloud beta lifesciences operations describe en spécifiant l'ID d'opération.

gcloud beta lifesciences operations describe OPERATION_ID

Vous pouvez également obtenir l'ID d'opération en répertoriant les opérations de base de données de longue durée.

Si la requête aboutit, l'invite de commande affiche les détails de l'opération. Le résultat ci-dessous provient de l'opération de pipeline décrite dans le démarrage rapide.

API

Pour connaître l'état et afficher les détails d'une opération de longue durée, appelez la méthode projects.locations.operations.get.

API REST et ligne de commande

Supposons que vous receviez la réponse suivante après avoir appelé projects.locations.pipelines.run :

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

La valeur name dans la réponse indique que l'API Cloud Life Sciences a créé une opération de longue durée appelée projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.

Vous pouvez également obtenir le nom de l'opération en répertoriant les opérations de longue durée.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : emplacement d'exécution de l'opération de longue durée.
  • OPERATION_ID : identifiant de l'opération de longue durée.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth application-default 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

API Explorer

Ouvrez la page de référence de la méthode. Le panneau de l'explorateur d'API s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).

Vous devriez recevoir une réponse JSON semblable à la suivante. Le résultat ci-dessous provient de l'opération de pipeline décrite dans le démarrage rapide.

Liste des opérations de longue durée

Les exemples suivants montrent comment répertorier les opérations de longue durée d'un projet et d'un emplacement Google Cloud.

Console

  1. Dans Cloud Console, accédez à la page "Pipelines" de l'onglet "Sciences de la vie".

    Accéder à la page "Pipelines" de l'onglet "Sciences de la vie"

  2. Les opérations de longue durée et leur état s'affichent. Les valeurs possibles pour la colonne État sont En cours d'exécution, Terminée et Échouée.

gcloud

Pour répertorier les opérations de longue durée d'un projet et d'un emplacement Google Cloud, exécutez la commande gcloud beta lifesciences operations list.

gcloud beta lifesciences operations list

Si la requête aboutit, l'invite de commande répertorie les opérations de longue durée :

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

API

Pour répertorier les opérations de longue durée d'un projet et d'un emplacement Google Cloud, appelez la méthode projects.locations.operations.list.

API REST et ligne de commande

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : emplacement d'exécution d'une ou plusieurs opérations de longue durée.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth application-default 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

API Explorer

Ouvrez la page de référence de la méthode. Le panneau de l'explorateur d'API s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Exécuter.

Vous devriez recevoir une réponse JSON de ce type :

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

Interroger une opération de longue durée

Les exemples suivants montrent comment interroger l'état d'une opération de longue durée.

Console

  1. Dans Cloud Console, accédez à la page "Pipelines" de l'onglet "Sciences de la vie".

    Accéder à la page "Pipelines" de l'onglet "Sciences de la vie"

  2. Les opérations de longue durée et leur état s'affichent. Cliquez sur l'icône Actualiser pour mettre à jour l'état d'une opération de longue durée.

gcloud

Après avoir démarré un pipeline, vous pouvez interroger l'opération de longue durée en exécutant la commande gcloud beta lifesciences operations wait.

gcloud beta lifesciences operations wait OPERATION_ID

Si la requête aboutit, l'invite de commande affiche le résultat suivant :

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

Une fois l'opération terminée, l'invite de commande affiche les éléments suivants :

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

API

Pour interroger une opération de longue durée, appelez la méthode projects.locations.operations.get de façon répétée jusqu'à la fin de l'opération. Observez un intervalle (10 secondes, par exemple) entre chaque tentative d'interrogation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : emplacement d'exécution de l'opération de longue durée.
  • OPERATION_ID : identifiant de l'opération de longue durée.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante pour interroger l'état d'une opération de longue durée toutes les 10 secondes :

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

Vous devriez recevoir une réponse JSON semblable à la suivante. Le résultat ci-dessous provient de l'opération de pipeline décrite dans le démarrage rapide. Une fois l'opération terminée, la réponse contient "done": true et une valeur dans le champ endTime.

PowerShell

Exécutez la commande suivante pour interroger l'état d'une opération de longue durée toutes les 10 secondes :

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

Vous devriez recevoir une réponse JSON semblable à la suivante. Le résultat ci-dessous provient de l'opération de pipeline décrite dans le démarrage rapide. Une fois l'opération terminée, la réponse contient "done": true et une valeur dans le champ endTime.

Annuler une opération de longue durée

Les exemples suivants montrent comment annuler une opération de longue durée en cours d'exécution.

Console

  1. Dans Cloud Console, accédez à la page "Pipelines" de l'onglet "Sciences de la vie".

    Accéder à la page "Pipelines" de l'onglet "Sciences de la vie"

  2. Cliquez sur l'ID de l'opération de longue durée que vous souhaitez annuler.
  3. Cliquez sur l'icône Annuler.

gcloud

Pour annuler une opération de longue durée, exécutez la commande gcloud beta lifesciences operations cancel.

gcloud beta lifesciences operations cancel OPERATION_ID

Si la requête aboutit, un écran d'annulation s'affiche :

Operation [OPERATION_ID] will be canceled.

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

Pour confirmer, saisissez Y. Une fois l'annulation confirmée, la réponse renvoie un corps vide.

Operation [OPERATION_ID] will be canceled.

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

{}

API

Pour annuler une opération de longue durée, appelez la méthode projects.locations.operations.cancel.

API REST et ligne de commande

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : emplacement d'exécution de l'opération de longue durée.
  • OPERATION_ID : identifiant de l'opération de longue durée.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default 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

Exécutez la commande suivante :

$cred = gcloud auth application-default 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

API Explorer

Ouvrez la page de référence de la méthode. Le panneau de l'explorateur d'API s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Exécuter.

Vous devriez recevoir une réponse JSON de ce type :

{}