AWS-Fehlermeldung: Gegen diese Ressource wird derzeit eine widersprüchliche bedingte Operation ausgeführt
Lesezeit: 6 Minuten
Benutzer1172468
Ich bekomme diesen Fehler zeitweise.
Ich habe ein Programm, das das Java-AWS-SDK verwendet und über die Zehntausende von kleinen Dateien in S3 lädt. Ich sehe diesen Fehler zeitweise.
Konnte nach kurzer Recherche im Internet keine hilfreiche Antwort finden.
Beachten Sie, dass das aufrufende Programm Single-Thread ist. Das zugrunde liegende AWS-Java-SDK scheint Worker-Threads zu verwenden.
Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:578)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:503)
Versuchen Sie, Objekte in S3 einzufügen und sie dann sofort zu lesen?
– Jamieb
16. Dezember 2012 um 2:31 Uhr
@jamieb, eigentlich nein, derzeit nicht.
– Benutzer1172468
16. Dezember 2012 um 3:27 Uhr
Ich wünschte, ich hätte eine Antwort für dich. Versuchen Sie, die gleichen Schlüssel in schneller Folge neu zu schreiben? S3 basiert auf einem “eventuell konsistenten” Modell, bei dem PUTs Zeit brauchen, um sich zu beruhigen.
– Jamieb
16. Dezember 2012 um 5:58 Uhr
@jamieb, danke, dass du Gehirnzyklen ausgegeben hast, aber die Antwort von Guy ist richtig, denke ich. Ich denke, in meinem Code versuche ich erneut, einen Bucket zu erstellen – in der Erwartung, dass er ordnungsgemäß fehlschlägt – es funktioniert in 99,99 % der Fälle und manchmal wird dieser Fehler ausgegeben. Nochmals vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen. Jubeln!
– Benutzer1172468
17. Dezember 2012 um 7:46 Uhr
Danke für die Nachverfolgung. Viel Glück!
– Jamieb
17. Dezember 2012 um 14:11 Uhr
Jan Vlcinsky
Ich habe die gleiche Fehlermeldung erhalten, als ich Folgendes getan habe:
einen Bucket erstellt – er ging standardmäßig in die US-Region (verwendetes AWSCLI)
realisiert, soll der Bucket in die EU-Region gehen und gelöscht werden (genutzte AWS-Konsole)
(wenige Minuten später) versuchte, den Bucket zu erstellen, wobei die EU-Region angegeben wurde
Bei Schritt 3 hat mir die AWS-Konsole die Fehlermeldung aus dem Titel Ihrer Frage angezeigt.
Ich vermute also, dass der Bucket in den USA gelöscht wurde, aber es gibt möglicherweise einige Synchronisierungsvorgänge, die einige Zeit in Anspruch nehmen. Und ich hoffe, dass ich nach ein paar Stunden Wartezeit den Bucket-Namen wieder für die Erstellung verfügbar finde – diesmal in der richtigen (EU-) Region.
FIX :- Bearbeiten: Ungefähr eine Stunde später war mein Versuch, den Bucket (in der EU-Region) zu erstellen, erfolgreich.
Ich bin gerade in die gleiche Situation geraten. Ich werde zurück posten, wenn ich meinen Bucket innerhalb der nächsten Stunde oder so erstellen kann.
– AJB
17. Mai 2014 um 19:42 Uhr
Das kann ich bestätigen. Es dauerte ungefähr 1,5 Stunden, und es gibt keine Garantie dafür, dass in der Zwischenzeit nicht jemand anderes den Bucket-Namen schöpft, aber Sie können ihn anscheinend innerhalb einer angemessenen Zeitspanne und mit etwas Glück zurückerhalten.
– AJB
17. Mai 2014 um 21:49 Uhr
Ich stimme @jan zu. Um dies zu lösen: Erstellen Sie einen neuen Bucket mit neuem Namen. Verwenden Sie nicht den Namen des gelöschten Buckets, wenn Sie Ihren neuen Bucket benennen.
Für alle anderen, die bei Google auf diesen Thread stoßen, als 1. Ergebnis bei der Suche nach dieser Fehlermeldung:
Wenn Sie den Bucket gelöscht haben, um ihn in einer neuen Region neu zu erstellen, Warten Sie nicht “manuell”, bis diese Hintergrundsynchronisierung abgeschlossen istführen Sie stattdessen ein kleines Bash-Skript aus und wiederholen Sie die erforderliche Bucket-Erstellung etwa alle 5 Sekunden.
Es wird die Operation “Bucket erstellen” alle paar Sekunden (abhängig von “sleep”) und sobald es möglich ist – für Sie erstellen, damit niemand Ihren Bucket-Namen versehentlich stehlen kann 🙂
ich hoffe es hilft 🙂
Danke dafür! In meiner Instanz hatte ich die Region bereits in der aws-Konfiguration definiert und das Ausführen des Skripts führte zu folgendem Fehler: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128). Die Lösung bestand darin, die zu entfernen --region Flagge.
– MagentoAaron
10. April 2019 um 14:17 Uhr
Horosho!!!!!!!!!
– Kaguei Nakueka
15. Dezember 2021 um 16:43 Uhr
Einfacher 🙂 until aws s3 mb aws s3 mb s3://your.bucket.name --region us-west-2; do echo "Trying again.."; sleep 5; done
– James Andrés
15. März um 11:51 Uhr
Kerl
Die Anforderung in Ihrem Beispiel besteht darin, einen Bucket zu erstellen. Wenn Sie versuchen, zu viele Buckets zu erstellen oder Buckets zu ersetzen, ist dies nicht gesund.
Beachten Sie, dass Sie ein Limit von 100 Buckets für ein Konto haben (siehe hier). BEARBEITEN: Jetzt ist dieses Limit ein “weiches Limit” und Sie können es bei Bedarf erhöhen.
Beachten Sie auch, dass die Erstellung eines Buckets einige Zeit in Anspruch nimmt und:
…es ist nicht angebracht, Aufrufe zum Erstellen oder Löschen von Buckets im Hochverfügbarkeits-Codepfad Ihrer Anwendung vorzunehmen…
Es ist besser, Ihre Buckets einmal zu erstellen und dann können Sie so viele Objekte, wie Sie möchten, in Ihre vorhandenen Buckets (oder sogar in ein einzelnes) legen.
Wie auch immer, wenn Sie mit einem System arbeiten, das hin und wieder ausfallen wird, sollten Sie in der Lage sein, mit Fehlern umzugehen und Ihren Prozess zu verlangsamen, wenn Sie einen solchen Fehler erhalten. Weitere Einzelheiten finden Sie in AWS-Dokumente.
Dieser Fehler tritt normalerweise auf, wenn ein Bucket gelöscht und ein neuer Bucket mit demselben Namen wie der alte Bucket erstellt wird.
Ich glaube, wir müssten eine gewisse Zeit warten, bis wir einen neuen Bucket mit demselben Namen erstellen können.
Sigmaxf
Einfach und unkompliziert: Ändern Sie den neuen Bucket-Namen oder warten Sie eine Stunde.
Ich habe gerade einen Bucket gelöscht (da S3-Bucket-Namen global eindeutig sind und ich denselben Bucket in einem anderen AWS-Konto erstellen muss) und mein Skript, das einen Bucket mit demselben Namen erstellt, schlägt mit demselben Fehler fehl. Ich muss mich also gedulden und eine Stunde warten.
Nur als Bestätigung: Nach etwa einer Stunde kann ich erfolgreich einen Bucket mit demselben Namen wie der gelöschte Bucket erstellen.
vel12171
Ändern Sie Ihren Bucket-Namen oder warten Sie. Ich habe weniger als 30 Minuten auf meine gewartet. Ich musste den Namen nicht ändern und ich konnte ihn nicht ändern, da ich darauf eingestellt war – er musste mit meinem bereits bestehenden Domainnamen für eine statische Website übereinstimmen, die ich hosten wollte. Wie auch immer, in weniger als 30 Minuten wurde es automatisch erstellt.
13528000cookie-checkAWS-Fehlermeldung: Gegen diese Ressource wird derzeit eine widersprüchliche bedingte Operation ausgeführtyes
Versuchen Sie, Objekte in S3 einzufügen und sie dann sofort zu lesen?
– Jamieb
16. Dezember 2012 um 2:31 Uhr
@jamieb, eigentlich nein, derzeit nicht.
– Benutzer1172468
16. Dezember 2012 um 3:27 Uhr
Ich wünschte, ich hätte eine Antwort für dich. Versuchen Sie, die gleichen Schlüssel in schneller Folge neu zu schreiben? S3 basiert auf einem “eventuell konsistenten” Modell, bei dem PUTs Zeit brauchen, um sich zu beruhigen.
– Jamieb
16. Dezember 2012 um 5:58 Uhr
@jamieb, danke, dass du Gehirnzyklen ausgegeben hast, aber die Antwort von Guy ist richtig, denke ich. Ich denke, in meinem Code versuche ich erneut, einen Bucket zu erstellen – in der Erwartung, dass er ordnungsgemäß fehlschlägt – es funktioniert in 99,99 % der Fälle und manchmal wird dieser Fehler ausgegeben. Nochmals vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen. Jubeln!
– Benutzer1172468
17. Dezember 2012 um 7:46 Uhr
Danke für die Nachverfolgung. Viel Glück!
– Jamieb
17. Dezember 2012 um 14:11 Uhr