Fehlerbehebung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite erfahren Sie, wie Sie Probleme mit Batch beheben.

Wenn Sie einen Job beheben möchten, für den Sie keine Fehlermeldung haben, sollten Sie den Job über die gcloud CLI oder Batch API beschreiben und prüfen, ob das Feld statusEvents Fehlermeldungen enthält.

Weitere Informationen zur Fehlerbehebung bei einem Job finden Sie unter Batch-Kontingente und -Limits.

Fehler beim Erstellen des Jobs

Wenn Sie einen Job nicht erstellen können, liegt das möglicherweise an einem der Fehler in diesem Abschnitt.

Unzureichendes Kontingent

Problem

Wenn Sie einen Job erstellen, tritt eines der folgenden Probleme auf:

RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE

Lösung

Dieses Problem weist darauf hin, dass eine Ressourcenanfrage Ihr Kontingent überschreitet.

Um das Problem zu beheben, warten Sie, bis ein höheres Kontingent freigegeben wird, oder fordern Sie ein höheres Kontingentlimit an. Weitere Informationen finden Sie unter Batch-Kontingente und -Limits und Höheres Kontingent anfordern.

Unzureichende Berechtigungen, um als Dienstkonto zu fungieren

Problem

Beim Erstellen eines Jobs tritt das folgende Problem auf:

  • Wenn der Job keine Instanzvorlage verwendet, wird das Problem so ausgegeben:

    caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
    
  • Wenn der Job eine Instanzvorlage verwendet, wird das Problem so ausgegeben:

    Error: code - CODE_SERVICE_ACCOUNT_MISMATCH, description - The service account specified in the instance template INSTANCE_TEMPLATE_SERVICE_ACCOUNT doesn't match the service account specified in the job JOB_SERVICE_ACCOUNT for JOB_UID, project PROJECT_NUMBER
    

Lösung

Dieses Problem tritt normalerweise auf, wenn der Nutzer, der den Job erstellt, nicht die erforderlichen Berechtigungen hat, um als vom Job verwendetes Dienstkonto zu fungieren. Dies wird durch die Berechtigung iam.serviceAccounts.actAs gesteuert.

So beheben Sie das Problem:

  1. Wenn der Job eine Instanzvorlage verwendet, prüfen Sie, ob das in der Instanzvorlage angegebene Dienstkonto mit dem in der Definition des Jobs angegebenen Dienstkonto übereinstimmt.
  2. Achten Sie darauf, dass dem Nutzer, der den Job erstellt, die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) für das für den Job angegebene Dienstkonto gewährt wurde. Weitere Informationen finden Sie unter Zugriff verwalten.
  3. Erstellen Sie den Job neu.

Fehler im Job

Wenn Sie Probleme mit einem Job haben, der nicht korrekt ausgeführt wird oder aus unbekannten Gründen fehlgeschlagen ist, kann dies an einem der Fehler in diesem Abschnitt liegen.

Keine Logs in Cloud Logging

Problem

Sie müssen Fehler in einem Job beheben, es werden aber in Cloud Logging keine Logs für den Job angezeigt.

Lösung

Dieses Problem tritt häufig aus folgenden Gründen auf:

  • Der Job war nicht für das Generieren von Logs konfiguriert. Zum Erstellen von Logs in Cloud Logging muss für einen Job Cloud Logging aktiviert sein. Die ausführbaren Jobs des Jobs sollten auch so konfiguriert werden, dass sie alle Informationen, die in Logs enthalten sein sollen, in die Streams mit Standardausgabe (stdout) und Standardfehler (Nearline) schreiben. Weitere Informationen finden Sie unter Job mithilfe von Logs analysieren.
  • Aufgaben wurden nicht ausgeführt. Logs können erst erstellt werden, wenn Aufgaben Ressourcen zugewiesen wurden und die Ausführung beginnt.

Zum Beheben des Problems beschreiben Sie den Job über die gcloud CLI oder Batch API. Insbesondere enthält das Feld status Informationen, mit denen Sie den Job debuggen können. Außerdem können Sie durch die Beschreibung des Jobs nachvollziehen, warum der Job keine Logs erstellt hat.

Keine Agent-Berichte

Problem

Das folgende Problem wird im Feld statusEvents für einen Job angezeigt, der vor dem Erstellen von VMs nicht richtig ausgeführt wurde oder fehlgeschlagen ist:

No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start

Das Problem gibt an, dass keine der VMs eines Jobs dem Batch-Dienst-Agent meldet.

Lösung

Dieses Problem tritt häufig aus folgenden Gründen auf:

  • Die VMs des Jobs haben nicht die erforderlichen Berechtigungen. Dieses Problem deutet insbesondere darauf hin, dass die VMs des Jobs nicht berechtigt sind, den Status an den Batch-Dienst-Agent zu melden. Die VMs eines Jobs können diese Berechtigungen erhalten, indem dem Batch-Agent die Rolle „Reporter“ (roles/batch.agentReporter) für das Dienstkonto des Jobs zugewiesen wird.
  • Die VMs des Jobs haben Netzwerkprobleme. Die VMs des Jobs können dem Batch-Dienst-Agent aufgrund eines Netzwerkproblems nicht melden.

So beheben Sie das Problem:

  1. Prüfen Sie, ob die VMs des Jobs die erforderlichen Berechtigungen haben, um ihren Status an den Batch-Dienst-Agent zu melden.

    1. Zur Identifizierung des Dienstkontos des Jobs beschreiben Sie den Job über die gcloud CLI oder Batch API. Wenn kein Dienstkonto aufgeführt ist, verwendet der Job standardmäßig das Compute Engine-Standarddienstkonto.
    2. Bestätigen Sie, dass das Dienstkonto des Jobs Berechtigungen für die Rolle "Batch-Agent-Melder" (roles/batch.agentReporter) hat. Weitere Informationen finden Sie unter Zugriff verwalten und Dienstkontonutzung einschränken.

      Verwenden Sie beispielsweise den folgenden Befehl, um dem Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen zu gewähren:

      gcloud projects add-iam-policy-binding /
      --role roles/batch.agentReporter /
      --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
      

      Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer.

  2. Wenn die VMs des Jobs bereits die erforderlichen Berechtigungen hatten, prüfen Sie, ob die VMs den richtigen Netzwerkzugriff haben. Weitere Informationen finden Sie unter Häufige Netzwerkprobleme beheben.

  3. Erstellen Sie den Job neu.

Einschränkung für externe VM-IP-Adressen verletzt

Problem

Das folgende Problem wird im Feld statusEvents für einen fehlgeschlagenen Job angezeigt:

Instance VM_NAME creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project PROJECT_NUMBER.
Add instance VM_NAME to the constraint to use external IP with it.

Lösung

Dieses Problem tritt auf, weil Ihr Projekt oder Ihre Organisation die Beschränkung der Organisationsrichtlinie compute.vmExternalIpAccess so festgelegt hat, dass nur VMs auf der Zulassungsliste erlaubt sind, um externe IP-Adressen zu verwenden.

Um das Problem zu beheben, erstellen Sie den Job neu und führen Sie einen der folgenden Schritte aus:

Job fehlgeschlagen, wenn eine Instanzvorlage verwendet wird

Problem

Das folgende Problem wird im Feld statusEvents für einen fehlgeschlagenen Job angezeigt, für den eine Instanzvorlage verwendet wird:

INVALID_FIELD_VALUE,BACKEND_ERROR

Lösung

Dieses Problem tritt aufgrund unklarer Probleme mit der Instanzvorlage des Jobs auf.

So beheben Sie das Problem:

  1. Erstellen Sie eine MIG mit der Instanzvorlage und beobachten Sie, ob Fehler mit weiteren Details auftreten.
  2. Optional: Weitere Informationen finden Sie im Vorgang mit langer Ausführungszeit, mit dem die MIG in der Google Cloud Console erstellt wird.

    Zu Compute Engine Operations

Nächste Schritte