Cette page a été traduite par l'API Cloud Translation.
Switch to English

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 de l'API Cloud Healthcare.

Des opérations de longue durée (LRO) sont renvoyées lorsque des appels de méthode peuvent prendre un certain temps. L'API Cloud Healthcare crée des opérations de longue durée pour plusieurs méthodes. Considérez par exemple la méthode servant à créer un ensemble de données, projects.locations.datasets.create. Lorsque projects.locations.datasets.create est appelée, l'API Cloud Healthcare crée une opération de longue durée pour suivre l'état du processus de création de l'ensemble de données. L'API Cloud Healthcare fournit des API d'opérations qui vous permettent de vérifier l'état des opérations de longue durée. Vous pouvez également répertorier les opérations de longue durée.

Les opérations de longue durée sont gérées au niveau de l'ensemble de données. Si vous appelez une méthode qui renvoie une opération de longue durée, telle que projects.locations.datasets.dicomStores.import, envoyez une requête à l'ensemble de données parent du magasin DICOM afin d'afficher les opérations de longue durée.

En plus de l'API REST, les sources suivantes génèrent des opérations de longue durée lorsque vous appelez les méthodes répertoriées dans la section Méthodes renvoyant une opération de longue durée :

Vous pouvez gérer les opérations de longue durée de l'API Cloud Healthcare à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou de l'API REST.

Notez que 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.

Méthodes renvoyant une opération de longue durée

Les méthodes suivantes renvoient une opération de longue durée :

Opérations d'ensemble de données :

Opérations DICOM :

Opérations FHIR :

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.

Notez que la version de l'API Cloud Healthcare indiquée dans la réponse lorsque vous obtenez des détails sur une opération de longue durée sera identique à la version de l'API de la méthode qui a lancé l'opération de longue durée.

Console

Après avoir appelé une méthode à l'aide de l'outil gcloud ou de l'API qui renvoie une opération de longue durée, vous pouvez afficher les détails de l'opération de longue durée dans Cloud Console.

  1. Dans Cloud Console, accédez à la page Ensembles de données.

    Accéder à la page Ensembles de données

  2. Cliquez sur le nom de l'ensemble de données contenant l'opération de longue durée que vous souhaitez afficher.
  3. Cliquez sur Opérations.
  4. Pour afficher les journaux d'erreurs relatifs à l'opération dans Cloud Logging, cliquez sur Actions, puis sur Afficher les détails dans Cloud Logging. Pour en savoir plus, consultez la page Afficher les journaux d'erreurs dans Cloud Logging.
  5. Pour afficher plus de détails sur l'opération, cliquez sur un ID d'opération en cours d'exécution. La page Détails de l'opération de longue durée s'affiche. Cette page affiche les informations suivantes:
    • Progression de l'opération
    • Les détails de l'opération, tels que l'ID et la méthode de l'opération
    • Toutes les entrées de journal

gcloud

Supposons que vous receviez la réponse suivante après avoir appelé gcloud healthcare datasets deidentify :

Request issued for: [DATASET_ID]
Waiting for operation [OPERATION_ID] to complete...

La réponse indique que l'API Cloud Healthcare a créé une opération de longue durée avec un ID d'opération. La commande continue de s'exécuter jusqu'à ce qu'elle soit terminée, puis génère les éléments suivants :

Request issued for: [DATASET_ID]
Waiting for operation [OPERATION_ID] to complete...done
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID

Pour obtenir les détails d'une opération de longue durée, exécutez la commande gcloud healthcare operations describe en spécifiant l'ID de l'ensemble de données et l'ID d'opération.

gcloud healthcare operations describe OPERATION_ID --dataset=DATASET_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 :

done: true
metadata:
'@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata
apiMethodName: google.cloud.healthcare.v1.dataset.DatasetService.DeidentifyDataset
createTime: 'CREATE_TIME'
endTime: 'END_TIME'
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
response:
'@type': type.googleapis.com/google.cloud.healthcare.v1.dataset.DeidentifySummary

API

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

curl

Pour obtenir des détails sur une opération de longue durée, envoyez une requête GET et indiquez le nom de l'ensemble de données, l'ID d'opération et un jeton d'accès.

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

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

L'exemple suivant montre comment utiliser une requête GET pour obtenir des détails sur une opération de longue durée utilisant curl.

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

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

Si la requête aboutit, le serveur renvoie la réponse au format JSON. Lorsqu'une opération de longue durée se termine, le champ done est défini sur true.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.DeidentifyDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
  },
  "done": true,
  "response": {
    "@type": "...",
    "successStoreCount": "SUCCESS_STORE_COUNT"
  }
}

Pour interroger une opération de longue durée, appelez la méthode projects.locations.datasets.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.

PowerShell

Pour obtenir des détails sur une opération de longue durée, envoyez une requête GET et indiquez le nom de l'ensemble de données, l'ID d'opération et un jeton d'accès.

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

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

L'exemple suivant montre comment utiliser une requête GET pour obtenir des détails sur une opération de longue durée à l'aide de Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

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

Si la requête aboutit, le serveur renvoie la réponse au format JSON. Lorsqu'une opération de longue durée se termine, le champ done est défini sur true.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.DeidentifyDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
  },
  "done": true,
  "response": {
    "@type": "...",
    "successStoreCount": "SUCCESS_STORE_COUNT"
  }
}

Pour interroger une opération de longue durée, appelez la méthode projects.locations.datasets.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.

Liste des opérations de longue durée

Les exemples suivants montrent comment répertorier les opérations de longue durée dans un ensemble de données.

Console

Après avoir appelé des méthodes à l'aide de l'outil gcloud ou de l'API qui renvoie une opération de longue durée, vous pouvez afficher une liste des opérations de longue durée dans Cloud Console.

  1. Dans Cloud Console, accédez à la page Ensembles de données.

    Accéder à la page Ensembles de données

  2. Cliquez sur le nom de l'ensemble de données contenant l'opération de longue durée que vous souhaitez afficher.
  3. Cliquez sur Opérations.

Les opérations de longue durée de l'ensemble de données et leur état s'affichent. Pour afficher les journaux d'erreurs dans Cloud Logging, cliquez sur l'icône d'informations dans la dernière colonne, puis sur Afficher les détails dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.

gcloud

Pour répertorier les opérations de longue durée d'un ensemble de données, exécutez la commande gcloud healthcare operations list.

gcloud healthcare operations list \
  --dataset=DATASET_ID \
  --location=LOCATION

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 ensemble de données, utilisez la méthode projects.locations.datasets.operations.list.

curl

Pour répertorier les opérations de longue durée d'un ensemble de données, envoyez une requête GET et indiquez le nom de l'ensemble de données et un jeton d'accès. L'exemple suivant montre une requête GET utilisant curl.

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

Si la requête aboutit, le serveur renvoie la réponse au format JSON :

{
  "operations": [
    {
      "name": "PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
        "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.DeidentifyDataset",
        "createTime": "CREATE_TIME",
        "endTime": "END_TIME",
        "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
      },
      "done": true,
      "response": {
        "@type": "...",
        "successStoreCount": "SUCCESS_STORE_COUNT"
      }
    },
    ...
  ]
}

PowerShell

Pour répertorier les opérations de longue durée d'un ensemble de données, envoyez une requête GET et indiquez le nom de l'ensemble de données et un jeton d'accès. L'exemple suivant montre une requête GET utilisant Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations" | Select-Object -Expand Content

Si la requête aboutit, le serveur renvoie la réponse au format JSON :

{
  "operations": [
    {
      "name": "PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
        "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.DeidentifyDataset",
        "createTime": "CREATE_TIME",
        "endTime": "END_TIME",
        "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL"
      },
      "done": true,
      "response": {
        "@type": "...",
        "successStoreCount": "SUCCESS_STORE_COUNT"
      }
    },
    ...
  ]
}

Annuler des opérations de longue durée

Les exemples suivants montrent comment annuler une opération de longue durée dans un ensemble de données.

Console

Après avoir appelé une méthode à l'aide de l'outil gcloud ou de l'API qui renvoie une opération de longue durée, vous pouvez l'annuler dans Cloud Console pendant son traitement.

  1. Dans Cloud Console, accédez à la page Ensembles de données.

    Accéder à la page Ensembles de données

  2. Cliquez sur le nom de l'ensemble de données contenant l'opération de longue durée que vous souhaitez annuler.
  3. Cliquez sur Opérations.
  4. Pour l'opération de longue durée concernée, sélectionnez Arrêter l'opération dans le menu "Plus d'informations" de la dernière colonne.

API

Pour annuler les opérations de longue durée d'un ensemble de données, utilisez la méthode projects.locations.datasets.operations.cancel.

curl

Pour annuler une opération de longue durée dans un ensemble de données, envoyez une requête POST et spécifiez les informations suivantes :

  • Nom de l'ensemble de données
  • Un jeton d'accès
  • ID de l'opération
  • Paramètre cancel

L'exemple suivant montre une requête POST utilisant curl.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID:cancel"

Pour afficher l'état d'une requête d'annulation, effectuez une requête GET et spécifiez les informations suivantes :

  • Nom de l'ensemble de données
  • Un jeton d'accès
  • ID de l'opération

L'exemple suivant montre une requête GET utilisant curl.

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

Si la requête aboutit, le serveur renvoie la réponse au format JSON :

{
  "name": "PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "API_METHOD_NAME",
    "createTime": "OPERATION_START_TIME",
    "endTime": "OPERATION_END_TIME",
    "cancelRequested": true,
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "error": {
    "code": 1,
    "message": "Operation cancelled by user."
  }
}

PowerShell

Pour annuler une opération de longue durée dans un ensemble de données, envoyez une requête POST et spécifiez les informations suivantes :

  • Nom de l'ensemble de données
  • Un jeton d'accès
  • ID de l'opération
  • Paramètre cancel

L'exemple suivant montre une requête POST utilisant Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID:cancel" | Select-Object -Expand Content

Pour afficher l'état d'une requête d'annulation, effectuez une requête GET et spécifiez les informations suivantes :

  • Nom de l'ensemble de données
  • Un jeton d'accès
  • ID de l'opération

L'exemple suivant montre une requête GET utilisant Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

Si la requête aboutit, le serveur renvoie la réponse au format JSON :

{
  "name": "PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "API_METHOD_NAME",
    "createTime": "OPERATION_START_TIME",
    "endTime": "OPERATION_END_TIME",
    "cancelRequested": true,
    "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "error": {
    "code": 1,
    "message": "Operation cancelled by user."
  }
}