Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Fehlerbehebung

Fehler API not enabled or service account deleted

Beim Aufruf der Cloud Life Sciences API kann es zu einem oder beiden der folgenden Fehler kommen:

  • API not enabled or service account deleted
  • checking service account permission: Account deleted: PROJECT_ID

Führen Sie folgende Schritte der Reihe nach aus, um diese Probleme zu beheben:

  1. Prüfen Sie, ob die Cloud Life Sciences API und die Compute Engine API aktiviert sind.
  2. Prüfen Sie, ob das Dienstkonto für den Cloud Life Sciences-Dienst-Agent ordnungsgemäß konfiguriert ist.
  3. Prüfen Sie, ob das Compute Engine-Standarddienstkonto ordnungsgemäß konfiguriert ist.

Cloud Life Sciences API und Compute Engine API aktivieren

Prüfen Sie, ob die Cloud Life Sciences API und die Compute Engine API in Ihrem Google Cloud-Projekt aktiviert sind:

  1. Aktivieren Sie die Cloud Life Sciences API:

    Cloud Life Sciences API aktivieren

  2. Aktivieren Sie die Compute Engine API:

    Compute Engine API aktivieren

Wenn ein Berechtigungsfehler darauf hinweist, dass Sie nicht die Berechtigung haben, Google Cloud APIs für Ihr Projekt zu aktivieren, sehen Sie sich die Informationen zum Aktivieren und Deaktivieren von Google Cloud APIs an.

Cloud Life Sciences-Dienstkonto oder Rolle des Cloud Life Sciences-Dienst-Agents fehlt

Das Dienstkonto Cloud Life Sciences-Dienst-Agent wird automatisch erstellt, wenn Sie eine Pipeline zum ersten Mal mit dem gcloud-Tool oder den RPC und REST APIs in einem Google Cloud-Projekt Der Cloud Life Sciences-Dienst-Agent ist ein von Google verwaltetes Dienstkonto. Sie können das Dienstkonto nicht komplett löschen. Unter bestimmten Umständen kann es jedoch vorkommen, dass es auf der Seite Identitäts- und Zugriffsverwaltung nicht angezeigt wird und Probleme mit der Cloud Life Sciences API auftreten.

Damit die Cloud Life Sciences API ordnungsgemäß funktioniert und Aufgaben wie das Ausführen von Pipelines auf Compute Engine-VMs erfüllt, muss das Dienstkonto Cloud Life Science-Dienst-Agent vorhanden sein und die Life Sciences-Dienst-Agent haben.

Sie können das Dienstkonto Cloud Life Sciences-Dienst-Agent neu erstellen oder ihm die IAM-Rolle Life Sciences-Dienst-Agent zuweisen, falls eines der folgenden Probleme auftritt:

  • Sie finden das Dienstkonto Cloud Life Sciences-Dienst-Agent nicht auf der Seite Identitäts- und Zugriffsverwaltung.
  • Sie finden das Dienstkonto Cloud Life Sciences-Dienst-Agent, es enthält jedoch nicht die Rolle Life Sciences-Dienst-Agent.

Fügen Sie dem Dienstkonto Cloud Life Sciences-Dienst-Agent die Rolle lifesciences.serviceAgent hinzu. Verwenden Sie dafür das gcloud-Befehlszeilentool und geben Sie die Kennzeichnung des Dienstkontos im Format service-PROJECT_NUMBER@gcp-sa-lifesciences.iam.gserviceaccount an.

Führen Sie den Befehl gcloud projects add-iam-policy-binding aus, um das Dienstkonto neu zu erstellen oder ihm die Cloud IAM-Rolle Life Sciences-Dienst-Agent zuzuweisen. Wie Sie die PROJECT_ID und PROJECT_NUMBER finden, erfahren Sie unter Projekte identifizieren.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-lifesciences.iam.gserviceaccount.com \
    --role=roles/lifesciences.serviceAgent

Wenn die Anfrage erfolgreich ist, wird in der Eingabeaufforderung eine Meldung ähnlich der folgenden angezeigt:

Updated IAM policy for project [PROJECT_ID].
bindings:
...
- members:
  - serviceAccount:service-PROJECT_NUMBER@gcp-sa-lifesciences.iam.gserviceaccount.com
  role: roles/lifesciences.serviceAgent
...
etag: VALUE
version: VALUE

Wechseln Sie zur Seite "Identitäts- und Zugriffsverwaltung" zurück und kontrollieren Sie Folgendes:

  • Die Spalte Mitglied enthält eine Dienstkontokennung im Format service-PROJECT_NUMBER@gcp-sa-lifesciences.iam.gserviceaccount.
  • Der Cloud Life Sciences-Dienst-Agent ist in der Spalte Name in derselben Zeile enthalten wie in der Spalte Mitglied.
  • Der Life Sciences-Dienst-Agent ist in der Spalte Rolle in derselben Zeile enthalten wie in der Spalte Mitglied.

Compute Engine-Standarddienstkonto fehlt

Neu erstellte Google Cloud-Projekte enthalten das Compute Engine-Standarddienstkonto, das mit der folgenden E-Mail-Adresse identifiziert werden kann:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Das Dienstkonto muss in Ihrem Google Cloud-Projekt vorhanden sein. Andernfalls kann die Cloud Life Sciences API keine Pipelines auf Compute Engine-VMs ausführen. Wenn Sie das Dienstkonto aus Ihrem Projekt löschen, können möglicherweise keine Anwendungen ausgeführt werden, die von den Anmeldedaten des Dienstkontos abhängen. Wenn Sie das Compute Engine-Standarddienstkonto versehentlich löschen, können Sie es innerhalb von 30 Tagen wiederherstellen. Weitere Informationen finden Sie unter Dienstkonto wiederherstellen.

Keine Authentifizierung bei der Cloud Life Sciences API möglich

Wenn Sie eine Pipeline mit der Cloud Life Sciences API ausführen und dafür als Anmeldedaten statt beispielsweise gcloud auth application-default login ein Dienstkonto verwenden, muss das Dienstkonto die folgenden Rollen haben:

  • roles/lifesciences.workflowsRunner
  • roles/iam.serviceAccountUser

Um Ihrem Dienstkonto diese Rollen hinzuzufügen, führen Sie in der Google Cloud Console oder mit dem gcloud-Befehlszeilentool die folgenden Schritte aus:

Console

  1. Prüfen Sie, ob die Cloud Life Sciences API aktiviert ist.
  2. Suchen Sie auf der IAM-Seite in der Google Cloud Console nach Ihrem Dienstkonto.
  3. Klicken Sie in der dem Dienstkonto entsprechenden Spalte Übernahme auf das Bleistiftsymbol. Der Bereich Berechtigungen bearbeiten wird geöffnet.
  4. Klicken Sie auf Weitere Rolle hinzufügen und suchen Sie nach den Rollen Life Sciences-Workflows-Runner und Dienstkontonutzer.
  5. Wählen Sie die Rolle aus und klicken Sie auf Speichern. Die Rollen lifesciences.workflowsRunner und iam.serviceAccountUser werden dem Dienstkonto hinzugefügt.

gcloud

Führen Sie den Befehl gcloud projects add-iam-policy-binding aus, um die Dienstkontoberechtigungen hinzuzufügen. Wie Sie die PROJECT_ID und PROJECT_NUMBER finden, erfahren Sie unter Projekte identifizieren.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@SERVICE_ACCOUNT_ID.iam.gserviceaccount.com \
    --role=roles/lifesciences.workflowsRunner
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@SERVICE_ACCOUNT_ID.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountUser

Keine Authentifizierung mit Standardanmeldedaten für Anwendungen möglich

Beim Aufruf der Cloud Life Sciences API kann es zu einer Fehlermeldung kommen, die besagt, dass Ihre Standardanmeldedaten für Anwendungen nicht verfügbar sind.

Informationen dazu, wie Sie Standardanmeldedaten für Anwendungen konfigurieren oder Anmeldedaten zur Authentifizierung manuell an Anwendungen oder Befehle übergeben, finden Sie unter Authentifizierung für Server-zu-Server-Anwendungen einrichten.

Fehlercodes

Die Cloud Life Sciences API kann die folgenden Fehlercodes zurückgeben:

RESOURCE EXHAUSTED (8)

Code: 8

Status: RESOURCE_EXHAUSTED

Kategorie: Nutzerfehler

Beschreibung: Eine Ressource ist aufgebraucht. Dies kann darauf hinweisen, dass Ihre Anwendung ein Admin API-Kontingent auf Projektebene ausgeschöpft hat.

Empfohlene Maßnahme: Wiederholen Sie den Vorgang.

FAILED_PRECONDITION (9)

Code: 9

Status: FAILED_PRECONDITION

Kategorie: Nutzerfehler

Vollständiger Fehler: Execution failed: while running "[USER_COMMAND_LINE]": unexpected exit status [NUMBER] was not ignored

Beschreibung: Der Vorgang wurde abgelehnt, weil eine Nutzeraktion einen Exit-Status ungleich null zurückgegeben hat. Es wird ein Ausschnitt der Standardfehlerausgabe der Aktion angezeigt, mit dessen Hilfe Sie das Problem diagnostizieren können. Um die vollständigen Logs von der virtuellen Maschine der Compute Engine (VM) hochzuladen, verwenden Sie bei einer Pipelineanfrage die Aktion ALWAYS_RUN, in etwa wie im folgenden Beispiel:

{
  "commands": [
    "-c",
    "gsutil -q cp /google/logs/output gs://CLOUD_STORAGE_BUCKET/output"
  ],
  "entrypoint": "bash",
  "flags": [ "ALWAYS_RUN" ],
  "imageUri": "gcr.io/cloud-genomics-pipelines/io"
}

Empfohlene Maßnahme: Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist.

ABORTED (10)

Code: 10

Status: ABORTED

Kategorie: Systemfehler

Vollständiger Fehler: The assigned worker has failed to complete the operation

Beschreibung: Der Vorgang wurde abgebrochen, weil ein Fehler in der Compute Engine-VM vorliegt, auf der die Pipeline ausgeführt wurde. Dies liegt möglicherweise daran, dass sie vorzeitig beendet wurde und den Status nicht mehr melden konnte.

Empfohlene Maßnahme: Wiederholen Sie den Vorgang. Tritt der Fehler immer wieder auf, kann ein Problem vorliegen, das zum Ausfall der Compute Engine-VM führt. Möglicherweise werden zu viele Ressourcen verwendet. Compute Engine-Logs in Cloud Logging prüfen

13

Code: 13

Vollständiger Fehler: Execution failed: generic::internal: action INDEX: waiting for container: container is still running, possibly due to low system resources

Beschreibung: Der Container für die Aktion ist möglicherweise aufgebraucht.

Empfohlene Aktion: Wiederholen Sie die Pipeline mit einem größeren Maschinentyp.

UNAVAILABLE (14)

Code: 14

Status: UNAVAILABLE

Kategorie: Systemfehler

Vollständiger Fehler: Execution failed: worker was terminated

Beschreibung: Die Compute Engine-VM, auf der die Pipeline ausgeführt wird, wurde vorzeitig beendet.

Empfohlene Maßnahme: Wiederholen Sie den Vorgang.

Neuer Versuch nach Fehlern

Pipelines können fehlschlagen und einen Fehlercode zurückgeben. Häufig sind dafür Probleme verantwortlich, die nichts mit der Arbeit der Pipeline zu tun haben. In den meisten Fällen können Sie den Pipelinevorgang wiederholen. Pipelines sind besonders anfällig für Fehler, wenn Sie VMs auf Abruf verwenden, die günstiger sind, aber mit höherer Wahrscheinlichkeit Unterbrechungen verursachen. Die Cloud Life Sciences API kann Pipelinevorgänge nicht automatisch wiederholen, da nicht alle Pipelines idempotent sind.

Wie im Abschnitt Fehlercodes gezeigt, sind Neuversuche zu empfehlen, wenn einer der folgenden Fehlercodes auftritt:

  • RESOURCE EXHAUSTED (8)
  • ABORTED (10)
  • UNAVAILABLE (14)

Cloud Monitoring aktivieren

Sie können Cloud Monitoring in Ihren Pipelines aktivieren, um Zustand und Ressourcennutzung der Worker-VMs zu überwachen, die zum Ausführen der Pipeline verwendet werden. Die Aktivierung von Monitoring kann jedoch zusätzliche Kosten verursachen. Zur Aktivierung von Monitoring geben Sie bei Ausführung der Pipelineanfrage das Flag enableStackdriverMonitoring für das Objekt VirtualMachine an.

Speicherplatz der Pipeline reicht nicht

Wenn der Speicherplatz der Pipeline nicht mehr ausreicht, um Docker-Images abzurufen, oder mehr Speicherplatz benötigt wird, um die Aufgaben zu protokollieren oder auszuführen, können Sie einen der folgenden Schritte ausführen:

  • Vergrößern Sie das Bootlaufwerk. Dafür verwenden Sie beim Erstellen der Pipelineanfrage das Flag bootDiskSizeGb im Objekt VirtualMachine.
  • Hängen Sie beim Erstellen der Pipelineanfrage ein separates Laufwerk an und fügen Sie es dem Mount-Objekt innerhalb des Action-Objekts hinzu.

Kontingentverzögerungen

Die Cloud Life Sciences API weist keine VMs zu, wenn das Compute Engine-Kontingent für Ihr Google Cloud-Projekt erschöpft ist. Alle weiteren Zuweisungsversuche werden verzögert, damit die Ausführung der vorhandenen Pipelines beendet werden kann. Tritt diese Verzögerung immer wieder auf, können Sie eine Kontingenterhöhung beantragen.

Pipelines werden beendet

Wenn Ihre Pipelines angehalten und wiederholt neu zugewiesen werden, da sie nicht mit dem Cloud Life Sciences API-Dienst kommunizieren können, kann das daran liegen, dass das default-Netzwerk{101 der VMs verwendet wurde. } wurde gelöscht und ein anderes Netzwerk wurde nicht im Objekt Network angegeben.

So lösen Sie dieses Problem:

  • Geben Sie im Objekt Network ein Netzwerk an.

OR

VMs abbrechen oder löschen

Anstatt nicht benötigte Worker-VMs zu löschen, empfiehlt es sich, die zugehörigen Vorgänge abzubrechen. Wenn Sie die VM löschen, kann die Pipeline nach und nach nicht mehr ausgeführt werden. Bei ihrem Neustart wird ihr möglicherweise eine neue VM zugewiesen.