Wenn ich einen neuen Amazon Elastic Container Service (Amazon ECS)-Service erstelle, erhalte ich die folgende Fehlermeldung: „Creation of service was not idempotent.“
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.
Der nicht idempotente Fehler tritt auf, wenn du einen Service erstellst, der denselben Namen wie ein vorhandener Service in der Amazon ECS-Datenbank hat. Gehe wie folgt vor, um dieses Problem zu beheben.
Sicherstellen, dass du keinen vorhandenen Cluster-Namen verwendest
Wenn du versuchst, einen Cluster mit demselben Namen, den ein vorhandener hat, zu erstellen, tritt einer der folgenden Fehler auf:
„InvalidParameterException: Creation of service was not idempotent.“
-oder-
„Invalid request provided: CreateService error: Create service is not idempotent.“
Um den Fehler zu beheben, stelle sicher, dass kein Service mit demselben Namen vorhanden ist. Wenn du kürzlich einen Service mit demselben Namen gelöscht hast, stelle sicher, dass der Status des Service DELETED lautet.
Hinweis: Der nicht idempotente Fehler kann auch dann auftreten, wenn du den vorhandenen Cluster löschst, da sich der Cluster möglicherweise noch in der Löschphase befindet.
Wenn sich der Service im Status DEPROVISIONING (Aufhebung der Bereitstellung) befindet, überprüfe, ob irgendwelche Aufgaben im Service bei der Aufhebung der Bereitstellung hängen bleiben. Um den Status aller Aufgaben im Cluster anzuzeigen, führe die DescribeTasks-API aus. Oder, führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle auf der Navigationsseite die Option Cluster aus.
- Wähle deinen Cluster aus.
- Wähle die Registerkarte Aufgaben aus.
Überprüfe den UpdateService API-Aufruf für den gelöschten Service, um zu überprüfen, ob der Service noch aktiv ist. Überprüfe auch den Delete Service API-Aufruf auf den Grund „Service contains registered instances; delete the instances before deleting the service“ (Service enthält registrierte Instances; lösche die Instances, bevor du den Service löschst). Wenn die Delete Service API diesen Grund enthält, lösche die Instance.
Die gelöschte IAM-Rolle neu erstellen
Wenn du eine AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle für eine Aufgabe verwendest, musst du zuerst die Aufgabe löschen, bevor du die Rolle löschst. Die IAM-Rolle muss während des gesamten Lebenszyklus der Aufgabe verfügbar sein. Dazu gehört auch die Aufhebung der Bereitstellung von Ressourcen.
Wenn du die IAM-Rolle zuerst gelöscht hast, führe die folgenden Schritte aus, um die Rolle neu zu erstellen:
- Führe den folgenden Befehl describe-services aus, um den vorherigen IAM-Rollennamen abzurufen:
aws ecs describe-services --cluster clustername --services servicename
Hinweis: Ersetze clustername durch deinen Cluster-Namen und servicename durch den Servicenamen.
- Erstelle erneut die IAM-Rolle mit demselben Namen. Informationen zu den erforderlichen Berechtigungen findest du unter Mit dem Service verknüpfte Rollenberechtigungen für Amazon ECS.
Hinweis: Informationen über den Benutzer, der die Rolle gelöscht hat, findest du unter AWS CloudTrail DeleteRole-Ereignis.
Einen neuen Service mit einem anderen Namen erstellen
Wenn du immer noch keinen neuen Service mit demselben Namen, den der gelöschte Service hat, erstellen kannst, erstelle einen neuen Service mit einem anderen Namen.
Ähnliche Informationen
CreateService