Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie kann ich Probleme mit Amazon ECS-Aufgabenplatzierungsbeschränkungen beheben?
Ich möchte Aufgabenplatzierungsbeschränkungen verwenden, um Aufgaben auf Amazon Elastic Container Service (Amazon ECS) auszuführen. Die Aufgaben bleiben jedoch im Status PENDING stecken und können nicht gestartet werden.
Kurzbeschreibung
Wenn du für deine Aufgabendefinition, deine Aufgabe oder deinen Service Aufgabenplatzierungsbeschränkungen konfigurierst, musst du eine Container-Instance haben, die seinen Attributen entspricht. Andernfalls bleiben Aufgaben im Status PENDING hängen oder können nicht gestartet werden, und du erhältst eine der folgenden Fehlermeldungen:
- Der Service (service-name) konnte keine Aufgabe platzieren, da keine Container-Instance alle Voraussetzungen erfüllt hat. Der am ehesten übereinstimmenden Container-Instance (a1b2c3d4-5678-90ab-cdef-11111EXAMPLE) fehlt ein erforderliches Attribut.
- TaskFailedToStart: MemberOf-Platzierungsbeschränkung nicht erfüllt
- TaskFailedToStart: ATTRIBUTE
Lösung
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 von AWS CLI verwendest.
Prüfe zunächst die Attribute, die du in der Aufgabenplatzierungsbeschränkung angegeben hast, um Probleme bei der Aufgabenplatzierung zu lösen. Vergewissere dich anschließend, dass die Container-Instances über die erforderlichen Attribute verfügen.
Aufgabenplatzierungsbeschränkungen, die nur in der Aufgabendefinition angegeben sind, überprüfen
Wenn du die Aufgabenplatzierungsbeschränkungen nur in der Aufgabendefinition verwendest, führe den folgenden Befehl aus, um zu prüfen, ob den Container-Instances Attribute fehlen:
ecs-cli check-attributes --task-def example-task-def --cluster example-cluster --region region-code --container-instances example-container-instance-id
Hinweis: Ersetze example-task-def durch deine Aufgabendefinition, example-cluster durch deinen Clusternamen, region-code durch deine AWS-Region und example-container-instance-id durch deine Container-Instance-ID.
Weitere Informationen findest du unter Prüfen auf fehlende Attribute und Debuggen von Fehlern bei Ursachenattributen auf der GitHub-Website.
Aufgabenplatzierungsbeschränkungen, die in der Aufgabendefinition, dem Service oder der Aufgabe angegeben sind, überprüfen
Führe die folgenden Schritte aus, um die Platzierungsbeschränkungen in der Aufgabendefinition zu überprüfen:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich Aufgabendefinitionen aus.
- Wähle die Aufgabendefinition und dann die Revision deiner Aufgabendefinition aus.
- Wähle ** Aufgabenplatzierung**.
Führe die folgenden Schritte aus, um die für den Service angegebenen Platzierungsbeschränkungen zu überprüfen:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle auf der Seite Cluster deinen Cluster aus.
- Wähle unter Services deinen Service aus.
- Wähle Konfiguration und Netzwerk und dann Aufgabenplatzierungsstrategie und Einschränkungen aus.
Um die für eine bestimmte Aufgabe angegebene Platzierungsbeschränkung zu überprüfen, führe den folgenden AWS CLI-Befehl describe-tasks aus:
aws ecs describe-tasks --cluster example-cluster --region region-code --tasks task-id
Hinweis: Ersetze example-cluster durch deinen Clusternamen, region-code durch deine Region und task-id durch deine Task-ID. Überprüfe in der Ausgabe des Befehls den Wert placementConstraints.
Vergewissere dich, dass deine Container-Instances über die erforderlichen Attribute verfügen.
Verwende entweder die Amazon ECS-Konsole oder die AWS CLI, um die Attribute deiner Container-Instance zu überprüfen.
Amazon-ECS-Konsole
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle auf der Seite Cluster deinen Cluster aus.
- Wähle die Registerkarte Infrastruktur aus.
- Wähle unter Container-Instances deine Container-Instance aus.
- Wähle Aktionen und dann Attribute anzeigen/bearbeiten aus.
- Vergewissere dich, dass die Container-Instance über die erforderlichen Attribute verfügt, die in der Platzierungsbeschränkung angegeben sind.
AWS CLI
Führe den folgenden Befehl vom Typ describe-container-instances aus:
aws ecs describe-container-instances --cluster example-cluster --region region-code --container-instances example-container-instance-id
Hinweis: Ersetze example-cluster durch deinen Clusternamen, region-code durch deine Region und example-container-instance-id durch deine Container-Instance-ID.
Führe den Befehl list-container-instances aus, um alle Container-Instances mit einem bestimmten Attribut anzuzeigen:
aws ecs list-container-instances --cluster example-cluster --region region-code --filter "attribute:ecs.instance-type == t2.micro"
Hinweis: Ersetze example-cluster durch deinen Clusternamen, region-code mit deiner Region, und attribute:ecs.instance-type == t2.micro durch dein Attribut. Der vorangehende Befehl listet alle Container-Instances im Cluster auf, die einen Instance-Typ „t2.micro“ haben.
Um mithilfe der AWS CLI ein Attribut für eine Container-Instance hinzuzufügen oder zu aktualisieren, führe den folgenden Befehl put-attributes aus:
aws ecs put-attributes \ --cluster example-cluster \ --region region-code \ --attributes name=stack,value=production,targetId=example-container-instance-id
Hinweis: Ersetze example-cluster durch deinen Clusternamen, region-code durch deine Region und example-container-instance-id durch deine Container-Instance-ID. Füge deine Attribute der Option --attributes hinzu. Der vorangehende Beispielbefehl fügt der Container-Instance den Stack-Namen und den Produktionswert hinzu.
(Optional) Die Aufgabenplatzierungsbeschränkungen aktualisieren
Wenn die Aufgabenplatzierungsbeschränkungen falsch oder zu restriktiv sind, aktualisiere sie in der Aufgabendefinition oder im Service. Oder führe den folgenden Befehl register-task-definition aus, um eine neue Aufgabendefinitionsrevision zu erstellen:
aws ecs register-task-definition \ --cli-input-json file://jsonfilepath/filename.json
Hinweis: Ersetze jsonfilepath.filename.json durch die JSON-Datei der Aufgabendefinition.
Um die Platzierungsbeschränkungen für eine eigenständige Aufgabe zu aktualisieren, führe den folgenden run-task-Befehl aus:
aws ecs run-task \ --cluster clustername \ --placement-constraints exampleconstraints
Hinweis: Ersetze clustername durch deinen Clusternamen und exampleconstraints durch deine Platzierungseinschränkungen.
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr