Wie repariere ich eine ungültige Rechenumgebung in AWS Batch?

Lesedauer: 5 Minute
0

Meine Rechenumgebung in AWS Batch befindet sich im Zustand „INVALID“. Wie behebe ich den Fehler?

Kurzbeschreibung

Sie erhalten die Fehlermeldung: "CLIENT_ERROR - Your compute environment has been INVALIDATED and scaled down because none of the instances joined the underlying ECS Cluster. Common issues preventing instances joining are the following: VPC/Subnet configuration preventing communication to ECS, incorrect Instance Profile policy preventing authorization to ECS, or customized AMI or LaunchTemplate configurations affecting ECS agent."

Beispiele für Probleme, die verhindern, dass Ihre Instances einem Amazon Elastic Container Service (Amazon ECS)-Cluster beitreten, sind:

  • Einstellungen der Subjekt configuration von Amazon Virtual Private Cloud (Amazon VPC), die eine erfolgreiche Kommunikation mit Amazon ECS verhindern.
  • Eine falsche Einstellung in der Instance-Profilrichtlinie, die die Autorisierung bei Amazon ECS verhindert.
  • Benutzerdefinierte Konfigurationen für Amazon Machine Images (AMIs) oder Startvorlagen, die sich auf den ECS-Agent auswirken.

Die Meldung CLIENT_ERROR gibt an, dass die Amazon Elastic Compute Cloud (Amazon EC2)-Instances, die von der AWS-Batch-Rechenumgebung erstellt wurden, dem ECS-Cluster nicht beigetreten sind. Wenn die Meldung CLIENT_ERROR ausgegeben wird, beendet AWS Batch automatisch die EC2-Instance und versetzt die Rechenumgebung in den Zustand INVALID (UNGÜLTIG).

Wenn sich Ihre Rechenumgebung im Zustand „INVALID“ (UNGÜLTIG) befindet, können Sie basierend auf der Fehlermeldung, die Sie erhalten, eine der folgenden Lösungen verwenden:

CLIENT_ERROR - Not authorized to perform sts:AssumeRoleComplete the steps in the Fix a service role that's not valid section.

CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid
Complete the steps in the Fix a Spot Fleet role that's not valid section.

CLIENT_ERROR - The specified launch template, with template ID [xxx], does not exist
Führen Sie die Schritte aus, die im Abschnitt Deaktivieren und Löschen Ihrer Rechenumgebung beschrieben sind.

CLIENT_ERROR - Access denied
Erstellen Sie eine Servicerolle mit den richtigen Berechtigungen oder wählen Sie eine bereits vorhandene Servicerolle mit den richtigen Berechtigungen aus.

Internal Error
Führen Sie die Schritte im Abschnitt Deaktivieren und dann aktivieren Sie Ihre Computerumgebung aus.

INVALID CLIENT_ERROR - null
Führen Sie die Schritte im Abschnitt Deaktivieren und dann aktivieren Sie Ihre Computerumgebung aus.

CLIENT_ERROR - The request uses the same client token as previous, but non-identical request
Führen Sie die Schritte im Abschnitt Deaktivieren und dann aktivieren Sie Ihre Computerumgebung aus.

CLIENT_ERROR - You are not authorized to use launch template
Prüfen Sie Folgendes:

  • Überprüfen Sie Ihre Servicerolle, um zu ermitteln, ob Berechtigungen für Amazon Elastic Compute Cloud und für Auto-Scaling-Gruppen erteilt wurden. Führen Sie dann die Schritte aus, die im Abschnitt Korrigieren einer ungültigen Servicerolle beschrieben sind.
  • Überprüfen Sie, ob Ihr Konto AWS Organizations angehört und ob Dienstkontroll-Richtlinien vorhanden sind, die den Zugriff auf Ihre Amazon-EC2-Berechtigungen blockieren. Aktualisieren Sie dann bei Bedarf die Dienstkontroll-Richtlinien.

Behebung

Korrigieren Sie eine ungültige Servicerolle

1.Öffnen Sie die AWS-Batch-Konsole.

2.Wählen Sie im Navigationsbereich die Option Compute environments aus.

3.Wählen Sie die Rechenumgebung aus, die sich im Zustand „INVALID“ befindet.
**Hinweis:**Falls sich Ihre Rechenumgebung im Zustand „DISABLED“ (DEAKTIVIERT) befindet, wählen Sie Enable (Aktivieren) aus, um Ihre Rechenumgebung zu aktivieren.

4.Wählen Sie Edit aus.

5.Wählen Sie unter Service role eine Servicerolle mit den Berechtigungen aus, die erforderlich sind, damit AWS Batch andere AWS-Services aufrufen kann.
**Wichtig:**Ihre Servicerolle verwaltet die Ressourcen, die Sie mit dem Service verwenden. Um den Service verwenden zu können, müssen Sie über eine Richtlinie und Rolle von AWS Identity and Access Management (IAM) verfügen, die die erforderlichen Berechtigungen für AWS Batch bereitstellen. Sie müssen eine Servicerolle mit Berechtigungen erstellen, falls Sie über keine verfügen.

6.Wählen Sie Save aus.

Korrigieren einer ungültigen Spot-Flottenrolle

Bei verwalteten Rechenumgebungen, die Spot-Flotten-Instances von Amazon EC2 verwenden, müssen Sie eine Rolle erstellen, die der Spot-Flotte folgende Berechtigungen gewährt:

  • Abgeben von Geboten für Instances
  • Starten von Instances
  • Taggen von Instances
  • Beenden von Instances

Falls Sie über keine Spot-Flottenrolle verfügen, gehen Sie wie folgt vor, um eine entsprechende Rolle für Ihre Rechenumgebung zu erstellen:

1.Öffnen Sie die IAM-Konsole.

2.Wählen Sie im Navigationsbereich die Option Roles aus.

3.Wählen Sie Create role aus.

4.Wählen Sie AWS service aus. Wählen Sie dann EC2 als den Service aus, der die von Ihnen erstellte Rolle verwendet.

5.Wählen Sie im Abschnitt Select your use case die Option EC2 Spot Fleet Role aus.
**Wichtig:**Wählen Sie nicht die ähnliche Option EC2 - Spot Fleet aus.

6.Wählen Sie Next: Permissions aus.

7.Wählen Sie Next: Tags aus. Wählen Sie anschließend Next: Review aus.

8.Geben Sie unter Role name den Rollennamen AmazonEC2SpotFleetRole ein.

9.Wählen Sie Create role aus.
**Hinweis:**Verwenden Sie Ihre neue Spot-Flottenrolle, um neue Rechenumgebungen zu erstellen. Die Spot-Flottenrollen bereits vorhandener Rechenumgebungen können nicht geändert werden. Deaktivieren Sie die veraltete Umgebung und löschen Sie sie anschließend, um sie zu entfernen.

10.Öffnen Sie die AWS-Batch-Konsole.

11.Wählen Sie im Navigationsbereich die Option Compute environments aus.

12.Wählen Sie die Rechenumgebung aus, die sich im Zustand „INVALID“ befindet. Wählen Sie dann Disable aus.

13.Wählen Sie Delete aus.

Deaktivieren und Löschen Ihrer Rechenumgebung

Sie müssen Ihre Rechenumgebung deaktivieren und löschen, da die mit ihr verknüpfte Startvorlage nicht vorhanden ist. Das bedeutet, dass Sie die mit Ihrer Startvorlage verknüpfte Rechenumgebung nicht verwenden können. Sie müssen diese Rechenumgebung löschen und dann eine neue Rechenumgebung erstellen.

1.Öffnen Sie die AWS-Batch-Konsole.

2.Wählen Sie im Navigationsbereich die Option Compute environments aus.

3.Wählen Sie die Rechenumgebung aus, die sich im Zustand „INVALID“ befindet. Wählen Sie dann Disable aus.

4.Wählen Sie Delete aus.

5.Erstellen Sie eine neue Rechenumgebung.

Deaktivieren und anschließendes Aktivieren Ihrer Rechenumgebung

1.Öffnen Sie die AWS-Batch-Konsole.

2.Wählen Sie im Navigationsbereich die Option Compute environments aus.

3.Wählen Sie die Rechenumgebung aus, die sich im Zustand „INVALID“ befindet. Wählen Sie dann Disable aus.

4.Wählen Sie die Rechenumgebung aus Schritt 3 aus. Wählen Sie dann Enable aus.


Verwandte Informationen

Troubleshooting AWS Batch

Why is my Amazon ECS or Amazon EC2 instance unable to join the cluster?

Why is my AWS Batch job stuck in RUNNABLE status?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren