Umgang mit lang andauernden Vorgängen

Auf dieser Seite wird beschrieben, wie Sie den Lebenszyklus eines lang laufenden Vorgangs (Long-Running Operation, LRO) der Cloud Life Sciences API verwalten.

Lang laufende Vorgänge werden zurückgegeben, wenn die Aufrufe von Methoden sehr lange dauern. In der Cloud Life Sciences API wird bei jedem Aufruf von projects.locations.pipelines.run oder gcloud beta lifesciences pipelines run ein LRO erstellt. Der LRO verfolgt den Status der Pipeline.

Sie können die Operations APIs verwenden, die von der Cloud Life Sciences API bereitgestellt werden, um den Status von LROs zu prüfen. Sie können LROs auch auflisten, abfragen oder abbrechen.

Beim direkten Aufruf der Cloud Life Sciences API werden LROs auf der Ebene des Google Cloud-Projekts und des Standorts verwaltet. Wenn Sie eine direkte Anfrage an den LRO senden, fügen Sie das Google Cloud-Projekt und den Standort hinzu, an dem der LRO ausgeführt wird.

Wenn Sie die gcloud CLI eingerichtet haben, muss Ihre Anfrage an den LRO beim Aufrufen der Cloud Life Sciences API über die gcloud CLI nur die Vorgangs-ID enthalten. Die Google Cloud-Projekt-ID und der Standort, an dem der LRO ausgeführt wird, werden aus der Vorgangs-ID abgeleitet.

Sie können Ihre Cloud Life Sciences-LROs über die Google Cloud Console, die Google Cloud CLI oder durch direktes Aufrufen der API verwalten. Die Google Cloud Console enthält nicht alle Details zu einem LRO, die verfügbar sind, wenn Sie die gcloud CLI verwenden und die Cloud Life Sciences API direkt aufrufen.

Der Datensatz eines LRO wird für etwa 30 Tage gespeichert, nachdem der LRO abgeschlossen wurde. Dies bedeutet, dass Sie nach diesem Zeitpunkt den LRO nicht mehr aufrufen oder auflisten können.

Details zu einem lange laufenden Vorgang abrufen

Die folgenden Beispiele zeigen, wie Sie Details zu einem LRO erhalten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Life Sciences-Pipelines“ auf.

    Zur Seite "Life Sciences-Pipelines"

  2. Eine Liste der LROs und ihrer Status wird angezeigt. Suchen Sie den gewünschten LRO und sehen Sie sich seinen Status an. Die möglichen Werte für die Spalte Status sind Wird ausgeführt, Abgeschlossen und Fehlgeschlagen.

gcloud

Angenommen, Sie erhalten nach dem Aufruf von gcloud beta lifesciences pipelines run die folgende Antwort:

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

Die Antwort zeigt, dass die Cloud Life Sciences API einen LRO mit einer Vorgangs-ID erstellt hat.

Führen Sie den Befehl gcloud beta lifesciences operations describe unter Angabe der Vorgangs-ID aus, um Details zu dem LRO abzurufen.

gcloud beta lifesciences operations describe OPERATION_ID

Sie können die Vorgangs-ID auch abrufen, indem Sie lange laufende Datenbankvorgänge auflisten.

Wenn die Anfrage erfolgreich ist, werden in der Eingabeaufforderung die Vorgangsdetails angezeigt. Die hier angezeigte Ausgabe stammt aus dem Pipelinevorgang in der Kurzanleitung.

API

Rufen Sie die projects.locations.operations.get-Methode auf, um den Status und Details des LRO abzurufen.

REST

Angenommen, Sie erhalten nach dem Aufruf von projects.locations.pipelines.run die folgende Antwort:

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

Der Wert für name in der Antwort zeigt, dass die Cloud Life Sciences API einen LRO mit dem Namen projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID erstellt hat.

Sie können den Namen des LRO auch abrufen, indem Sie lang laufende Vorgänge auflisten.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • LOCATION: der Ort, an dem der LRO ausgeführt wird
  • OPERATION_ID: die ID für den LRO

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

Führen Sie folgenden Befehl aus:

$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

APIs Explorer

Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Die hier angezeigte Ausgabe stammt aus dem Pipelinevorgang in der Kurzanleitung.

Lang laufende Vorgänge auflisten

Die folgenden Beispiele zeigen, wie Sie LROs in einem Google Cloud-Projekt an einem Standort auflisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Life Sciences-Pipelines“ auf.

    Zur Seite "Life Sciences-Pipelines"

  2. Eine Liste der LROs und ihrer Status wird angezeigt. Die möglichen Werte für die Spalte Status sind Wird ausgeführt, Abgeschlossen und Fehlgeschlagen.

gcloud

Führen Sie zum Auflisten der LROs in einem Google Cloud-Projekt an einem Standort den Befehl gcloud beta lifesciences operations list aus.

gcloud beta lifesciences operations list

Wenn die Anfrage erfolgreich ist, werden in der Eingabeaufforderung die LROs aufgelistet:

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

API

Rufen Sie zum Auflisten der LROs in einem Google Cloud-Projekt an einem Standort die Methode projects.locations.operations.list auf.

REST

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • LOCATION: der Ort, an dem ein oder mehrere LROs ausgeführt werden

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

PowerShell

Führen Sie folgenden Befehl aus:

$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

APIs Explorer

Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Lang andauernden Vorgang abfragen

Die folgenden Beispiele zeigen, wie der Status eines LRO abgefragt wird.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Life Sciences-Pipelines“ auf.

    Zur Seite "Life Sciences-Pipelines"

  2. Eine Liste der LROs und ihrer Status wird angezeigt. Klicken Sie auf das Symbol Aktualisieren, um den aktualisierten Status für einen LRO zu sehen.

gcloud

Nachdem Sie eine Pipeline gestartet haben, können Sie den LRO durch Ausführen des Befehls gcloud beta lifesciences operations wait abfragen.

gcloud beta lifesciences operations wait OPERATION_ID

Wenn die Anfrage erfolgreich ist, wird in der Eingabeaufforderung Folgendes angezeigt:

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

Wenn der Vorgang abgeschlossen ist, wird in der Eingabeaufforderung Folgendes angezeigt:

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

API

Für die Abfrage eines LRO rufen Sie die Methode projects.locations.operations.get wiederholt auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den Abfrageanfragen, z. B. 10 Sekunden.

Bevor Sie die unten aufgeführten Daten für eine Anfrage verwenden, nehmen Sie folgende Ersetzungen vor:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • LOCATION: der Ort, an dem der LRO ausgeführt wird
  • OPERATION_ID: die ID für den LRO

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie den folgenden Befehl aus, um alle 10 Sekunden den Status eines LRO abzufragen:

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Die hier angezeigte Ausgabe stammt aus dem Pipelinevorgang in der Kurzanleitung. Wenn der Vorgang abgeschlossen ist, enthält die Antwort "done": true und einen Wert im Feld endTime.

PowerShell

Führen Sie den folgenden Befehl aus, um alle 10 Sekunden den Status eines LRO abzufragen:

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Die hier angezeigte Ausgabe stammt aus dem Pipelinevorgang in der Kurzanleitung. Wenn der Vorgang abgeschlossen ist, enthält die Antwort "done": true und einen Wert im Feld endTime.

Lang laufenden Vorgang abbrechen

Die folgenden Beispiele zeigen, wie ein LRO während der Ausführung abgebrochen wird.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Life Sciences-Pipelines“ auf.

    Zur Seite "Life Sciences-Pipelines"

  2. Klicken Sie auf die ID des LRO, den Sie abbrechen möchten.
  3. Klicken Sie auf das Symbol Abbrechen.

gcloud

Führen Sie den Befehl gcloud beta lifesciences operations cancel aus, um einen LRO abzubrechen.

gcloud beta lifesciences operations cancel OPERATION_ID

Wenn die Anfrage erfolgreich ist, wird eine Aufforderung zum Abbrechen angezeigt:

Operation [OPERATION_ID] will be canceled.

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

Geben Sie zur Bestätigung Y ein. Nachdem Sie den Abbruch bestätigt haben, gibt die Antwort einen leeren Textkörper zurück.

Operation [OPERATION_ID] will be canceled.

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

{}

API

Rufen Sie zum Abbrechen eines LRO die Methode projects.locations.operations.cancel auf.

REST

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • LOCATION: der Ort, an dem der LRO ausgeführt wird
  • OPERATION_ID: die ID für den LRO

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

Führen Sie folgenden Befehl aus:

$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

APIs Explorer

Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{}