Warum schlagen meine Windows-Aufgaben in Amazon ECS fehl?

Lesedauer: 3 Minute
0

Ich möchte eine gestoppte Windows-Aufgabe in einem Amazon Elastic Container Service (Amazon ECS)-Cluster beheben.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Um Fehler bei einer gestoppten Aufgabe zu beheben, verwende die AWS-Managementkonsole oder die AWS CLI, um Fehler bei gestoppten Aufgaben anzuzeigen. Oder verwende DescribeTasks, um Informationen über die gestoppte Aufgabe abzurufen.

Wichtig: Du kannst nur innerhalb 1 Stunde nach dem Fehlschlagen der Aufgabe auf die Informationen zugreifen, die DescribeTasks über gestoppte Aufgaben abruft. Um diese Daten länger beizubehalten, verwende die AWS CloudFormation-Vorlage von amazon-ecs-stopped-tasks-cwlogs auf der GitHub-Website. Erfasse mit dieser Vorlage die Amazon CloudWatch-Protokolle, die Amazon EventBridge generiert, wenn eine Aufgabe angehalten wird.

Führe die folgenden Schritte zur Behebung des Fehlers aus, der angezeigt wird.

Häufige Fehler beim Anhalten von Aufgaben

Informationen zur Behebung häufiger Fehler bei angehaltenen Aufgaben, wie z. B. Probleme bei der Zustandsprüfung von Container-Instances, findest du unter Warum wurde meine Amazon ECS-Aufgabe angehalten?.

Wenn du den Fehler CannotPullContainerError: API erhältst, findest du Informationen unter Wie kann ich den Amazon Elastic Container Registry (Amazon ECR)-Fehler „CannotPullContainerError: API error“ in Amazon ECS beheben?.

Wenn du den Fehler OutOfMemory erhältst, findest du weitere Informationen unter Wie behebe ich OutOfMemory-Fehler in Amazon ECS?.

Fehler „No valid providers in chain“

Wenn für die Instance ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE nicht gesetzt ist, erhältst du eine Fehlermeldung, die der folgenden ähnelt: „"CannotStartContainerError: Error response from daemon: failed to initialize logging driver: failed to create Cloudwatch log stream: NoCredentialProviders: no valid providers in chain“.

Um dieses Problem zu beheben, stelle sicher, dass du ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE auf der Container-Instance festlegst. Beispiel für eine PowerShell-Syntax:

<powershell>
[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine")
Initialize-ECSAgent -Cluster cluster-name -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]'
</powershell>

Hinweis: Ersetze cluster-name durch deinen Cluster-Namen.

Fehler „The container operating system does not match the host operating system“

Wenn das Host-Betriebssystem (OS) nicht mit dem Basis-Image-Betriebssystem der Windows-Container-Instance übereinstimmt, erhältst du eine Fehlermeldung ähnlich der folgenden: „CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim task: hcs::CreateComputeSystem abcdxyz: The container operating system does not match the host operating system“.

Um dieses Problem zu beheben, stelle sicher, dass der AWS Fargate- oder Amazon Elastic Compute Cloud (Amazon EC2)-Host dasselbe Betriebssystem wie die Container-Instance verwendet.

Fehler „Unable to assume the role“

Wenn die Container-Instance die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle nicht übernehmen kann, erhältst du eine Fehlermeldung ähnlich der folgenden: „Unable to assume the role "arn:aws:iam::abcdefxyz123:role/yyyyyyyy“.

Führe den folgenden Befehl aus, um sicherzustellen, dass du die Option -EnableTaskIAMRole im Benutzerdatenskript festlegst:

<powershell>
Import-Module ECSTools
Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole
</powershell>

Stelle sicher, dass du die Anforderungen an die Konfiguration der Windows-Instance erfüllst.

Ähnliche Informationen

Bootstrapping von Amazon ECS Windows-Container-Instances zur Weitergabe von Daten

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Monaten