New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie behebe ich Fehler, wenn ich einen Kapazitätsanbieter in Amazon ECS lösche?
Ich erhalte eine Fehlermeldung, wenn ich versuche, einen Kapazitätsanbieter für meinen Amazon Elastic Container Service (Amazon ECS)-Cluster zu löschen.
Kurzbeschreibung
Wenn du den Befehl delete-capacity-provider oder die API deleteCapacityProvider von AWS Command Line Interface (AWS CLI) verwendet hast, erhältst du möglicherweise eine der folgenden Fehlermeldungen:
„updateStatus“: „DELETE_FAILED“
-oder-
„updateStatusReason“: „The capacity provider cannot be deleted because it is associated with cluster: Cluster Name. Remove the capacity provider from the cluster and try again.“
Wenn du die AWS-Managementkonsole zum Löschen eines Kapazitätsanbieters verwendet hast, erhältst du möglicherweise die folgende Fehlermeldung:
„There was an error deleting capacity provider Capacity Provider Name. The specified capacity provider is in use and cannot be removed“
Du kannst keinen Kapazitätsanbieter löschen, der mit einem Cluster verknüpft ist. Um Probleme beim Löschen zu lösen, musst du entweder den Kapazitätsanbieter aus dem Cluster entfernen oder den Cluster löschen. Lösche dann den Kapazitätsanbieter.
**Hinweis:**Wenn du eine Amazon EC2 Auto Scaling-Gruppe löschst, wechselt der zugehörige Kapazitätsanbieter in den Status INAKTIV. Es ist keine bewährte Methode, Kapazitätsanbieter im Status INAKTIV zu verwenden, da sie jederzeit automatisch entfernt werden können.
Lösung
Hinweis: Wenn du beim Ausführen von 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. Installiere zum Formatieren jq von jq herunterladen auf der jq-Website.
Identifiziere die Kapazitätsanbieter, die dem Cluster zugeordnet sind
Verwende die Amazon ECS-Konsole oder die AWS CLI, um alle Kapazitätsanbieter zu identifizieren, die mit einem Amazon ECS-Cluster verknüpft sind.
Amazon-ECS-Konsole
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle deinen Cluster aus.
- Wähle die Registerkarte Infrastruktur aus.
- Wählen Kapazitätsanbieter.
AWS CLI
Führeden folgenden Befehl describe-clusters aus:
aws ecs describe-clusters --cluster your-cluster-name | jq '.clusters[].capacityProviders'
**Hinweis:**Ersetze your-cluster-name durch den Clusternamen.
Stelle sicher, dass Amazon ECS den Kapazitätsanbieter nicht in der Kapazitätsanbieterstrategie verwendet
Führe das folgende Skript aus, um die Services anzuzeigen, die den Kapazitätsanbieter verwenden:
#!/bin/bash cluster=ClusterName capacityprovider=CapacityProviderName services=$(aws ecs list-services --cluster ${cluster} | jq --raw-output '.serviceArns[]') aws ecs describe-services \ --cluster ${cluster} \ --services ${services} \ | jq -r --arg capacityprovider "${capacityprovider}" \ '.services[] | select(.capacityProviderStrategy[]?.capacityProvider == $capacityprovider) | .serviceName'
**Hinweis:**Ersetze ClusterName durch den Clusternamen und CapacityProviderName durch den Namen des Kapazitätsanbieters. Wenn das Skript eine leere Ausgabe zurückgibt, verwendet keiner der Services im Cluster den Kapazitätsanbieter. Fahre in diesem Fall mit dem Abschnitt Prüfe, ob der Kapazitätsanbieter in der Standardstrategie für den Kapazitätsanbieter für den Cluster festgelegt ist, fort.
Bevor du einen vorhandenen Kapazitätsanbieter löschen können, der verwendet wird, musst du Amazon ECS so aktualisieren, dass ein neuer Kapazitätsanbieter verwendet wird. Verwende die Amazon ECS-Konsole oder die AWS CLI. Wenn du den Service aktualisierst, verwende neue Bereitstellung erzwingen, um Aufgaben, die Amazon Elastic Compute Cloud (Amazon EC2)-Instance-Kapazität nutzen, zwischen Anbietern zu übertragen.
Gehe wie folgt vor, um den Kapazitätsanbieter mithilfe der AWS CLI zu aktualisieren:
-
Führe den folgenden Befehl describe-services aus, um die bestehende Kapazitätsanbieterstrategie für den Service anzuzeigen:
aws ecs describe-services --cluster my-cluster --services my-service
Hinweis: Ersetze my-cluster durch den Clusternamen und my-service durch den Servicenamen.
-
Erstelle eine neue Kapazitätsanbieterstrategie, die den Kapazitätsanbieter ausschließt, den du entfernen möchtest. Stelle sicher, dass das Gesamtgewicht der verbleibenden Kapazitätsanbieter 100 beträgt.
-
Führe den folgenden Befehl update-service aus, um den Service zu aktualisieren:
aws ecs update-service \ --cluster your-cluster-name \ --service your-service-name \ --capacity-provider-strategy capacityProvider=remaining-provider,weight=100 \ --force-new-deployment
**Hinweis:**Ersetze your-cluster-name durch den Clusternamen und your-service-name durch den Servicenamen. Ersetze außerdem remaining-provider durch den Namen des neuen Kapazitätsanbieters.
Prüfe, ob der Kapazitätsanbieter in der Standardstrategie für den Cluster festgelegt ist
Führe den folgenden Befehl describe-clusters aus, um die Standardstrategie für den Kapazitätsanbieter für den Cluster zu ermitteln:
aws ecs describe-clusters --cluster mycluster | jq '.clusters[].defaultCapacityProviderStrategy'
Wenn der Kapazitätsanbieter, den du löschen möchtest, in der Befehlsausgabe enthalten ist, musst du die Standardstrategie für den Kapazitätsanbieter ändern. Du kannst die Amazon ECS-Konsole oder die AWS CLI verwenden.
Amazon-ECS-Konsole
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich die Option Cluster aus.
- Wähle deinen Cluster aus.
- Wähle Cluster aktualisieren.
- Wähle unter Clusterkonfiguration für Standardstrategie für den Kapazitätsanbieter die Option Entfernen für den Kapazitätsanbieter aus.
- Wähle Aktualisieren aus.
AWS CLI
Führe den folgenden Befehl put-cluster-capacity-providers aus:
aws ecs put-cluster-capacity-providers --cluster ClusterName --capacity-providers [] --default-capacity-provider-strategy []
Hinweis: Ersetze cluster-name durch den Clusternamen.
Ersetze den vorherigen Kapazitätsanbieter durch einen neuen Kapazitätsanbieter, bevor du ihn löschst. Führe den folgenden Befehl put-cluster-capacity-provider aus, um den Kapazitätsanbieter zu ersetzen:
aws ecs put-cluster-capacity-providers --cluster ClusterName --capacity-providers UpdatedCapacityProvider --default-capacity-provider-strategy capacityProvider=UpdatedCapacityProvider --region RegionName
**Hinweis:**Ersetze ClusterName durch den Clusternamen, updatedCapacityProvider durch den neuen Kapazitätsanbieter und RegionName durch die AWS-Region.
Wenn du den Befehl put-cluster-capacity-providers ausführst, musst du alle Kapazitätsanbieter einbeziehen, die du im Cluster behalten möchtest. Wenn du keinen Kapazitätsanbieter angibst, trennt Amazon ECS den Kapazitätsanbieter vom Cluster.
Lösche den Kapazitätsanbieter
Führe den folgenden Befehl delete-capacity-provider aus, um den Kapazitätsanbieter zu löschen:
aws ecs delete-capacity-provider --capacity-provider PreviousCapacityProvider
**Hinweis:**Ersetze previousCapacityProvider durch den ARN des Kapazitätsanbieters, den du löschen möchtest.
Führe den folgenden Befehl describe-capacity-providers aus, um zu überprüfen, ob der Kapazitätsanbieter gelöscht wurde:
aws ecs describe-capacity-providers --capacity-provider PreviousCapacityProvider
**Hinweis:**Ersetze previousCapacityProvider durch den ARN des Kapazitätsanbieters, den du gelöscht hast.
Stelle in der Befehlsausgabe sicher, dass der Status für den Kapazitätsanbieter INAKTIV ist.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 5 Monaten