ข้อความข้อผิดพลาด AWS: การดำเนินการตามเงื่อนไขที่ขัดแย้งกันอยู่ในระหว่างดำเนินการกับทรัพยากรนี้


181

ฉันได้รับข้อผิดพลาดนี้เป็นระยะ

ฉันมีโปรแกรมที่ใช้ java aws sdk และโหลดไฟล์ขนาดเล็กกว่า 10s เป็นพัน s3 ฉันเห็นข้อผิดพลาดนี้เป็นระยะ

ไม่พบคำตอบที่เป็นประโยชน์หลังจากทำการค้นหาอย่างรวดเร็วบนอินเทอร์เน็ต

หมายเหตุโปรแกรมการเรียกเป็นเธรดเดี่ยว aws java sdk พื้นฐานดูเหมือนจะใช้เธรดผู้ปฏิบัติงาน

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)

1
คุณพยายามใส่วัตถุลงใน S3 แล้วอ่านได้ทันทีหรือไม่
jamieb

@amieb ที่จริงไม่ไม่ได้ในเวลานี้
user1172468

1
ฉันหวังว่าฉันจะได้คำตอบสำหรับคุณ คุณกำลังพยายามเขียนรหัสเดิมซ้ำ ๆ กันอย่างรวดเร็วหรือไม่? S3 สร้างขึ้นในรุ่น "ในที่สุดสอดคล้อง" ที่ PUTs ต้องการเวลาในการชำระ
jamieb

@amieb ขอบคุณสำหรับการใช้รอบสมอง แต่คำตอบที่ได้รับจาก Guy นั้นถูกต้องฉันคิดว่า ฉันคิดว่าในรหัสของฉันฉันพยายามที่จะสร้างถัง - คาดว่าจะล้มเหลวอย่างสง่างาม - มันชอบ 99.99% ของเวลาและบางครั้งมันก็พ่นข้อผิดพลาดนี้ ขอขอบคุณอีกครั้งจริง ๆ ที่คุณสละเวลาเพื่อช่วยฉันออกไป เชียร์!
user1172468

ขอบคุณสำหรับการติดตาม โชคดี!
jamieb

คำตอบ:


464

ฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกันเมื่อฉันทำตาม:

  1. สร้างที่ฝากข้อมูล - ค่าเริ่มต้นเป็นภูมิภาคของสหรัฐอเมริกา (ใช้ AWSCLI)

  2. ตระหนักแล้วถังจะไปยังภูมิภาคของสหภาพยุโรปและลบมัน (ใช้คอนโซล AWS)

  3. (ไม่กี่นาทีต่อมา) พยายามสร้างที่เก็บข้อมูลโดยระบุภูมิภาคของสหภาพยุโรป

ในขั้นตอนที่ 3 คอนโซล AWS แสดงข้อความข้อผิดพลาดจากชื่อคำถามของคุณ

ดังนั้นฉันเดาว่าที่ฝากข้อมูลในสหรัฐอเมริกาถูกลบ แต่อาจมีกระบวนการซิงโครไนซ์ซึ่งอาจใช้เวลานาน และฉันหวังว่าการรอสองสามชั่วโมงฉันจะพบชื่อถังอีกครั้งเพื่อสร้าง - คราวนี้อยู่ในภูมิภาค (EU) ที่เหมาะสม

การแก้ไข: - แก้ไข: ประมาณหนึ่งชั่วโมงต่อมาความพยายามของฉันในการสร้างถัง (ในภูมิภาคสหภาพยุโรป) ประสบความสำเร็จ


4
ฉันเพิ่งวิ่งเข้าไปในสถานการณ์เดียวกัน ฉันจะโพสต์กลับถ้าฉันสามารถสร้างถังของฉันภายในไม่กี่ชั่วโมงถัดไป
AJB

27
ฉันยืนยันสิ่งนี้ได้ ใช้เวลาประมาณ 1.5 ชั่วโมงและไม่มีการรับประกันว่าคนอื่นจะไม่ตักชื่อถังในระหว่างนี้ แต่คุณสามารถเอากลับมาดูเหมือนว่าภายในระยะเวลาที่เหมาะสมและมีโชคเล็กน้อย
AJB

1
ฉันเห็นด้วยกับ @jan เพื่อแก้ปัญหานี้: สร้างที่เก็บข้อมูลใหม่ด้วยชื่อใหม่อย่าใช้ชื่อของที่เก็บข้อมูลที่ลบแล้วในขณะตั้งชื่อที่เก็บข้อมูลใหม่ของคุณ
Dinesh Sunny

5
สำหรับฉันใช้เวลาน้อยกว่า 70 นาที
offby1

4
Amazon บอกว่ามันอาจใช้เวลามากถึง10 ชั่วโมงฟอรั่ม. aws.amazon.com/thread.jspa?threadID=37532
TomDotTom

37

สำหรับคนอื่น ๆ ทุกคนที่สะดุดในหัวข้อนี้จาก google เป็นผลที่ 1 ในการค้นหาข้อความผิดพลาดนี้:

หากคุณลบที่ฝากข้อมูลเพื่อสร้างใหม่ในภูมิภาคใหม่อย่ารอ "ด้วยตนเอง" จนกว่าการซิงค์พื้นหลังนี้จะเสร็จสมบูรณ์แทนที่จะใส่สคริปต์ทุบตีขนาดเล็กเพื่อเรียกใช้และลองสร้างที่ฝากข้อมูลที่คุณต้องการทุก ๆ 5 วินาที

ตัวอย่าง:

#!/bin/bash 
RESULT=2 
until [  $RESULT -eq 0 ]; do
    aws s3 mb s3://your.bucket.name --region us-west-2
    RESULT=$?
    sleep 5 
done 
echo "Bucket created!"

มันจะลองดำเนินการ "สร้างถัง" สำหรับคุณทุก ๆ สองสามวินาที (ขึ้นอยู่กับ 'สลีป') และเร็วที่สุดเท่าที่จะเป็นไปได้ - จะสร้างให้คุณดังนั้นจึงไม่มีใครสามารถขโมยชื่อถังของคุณได้โดยไม่ตั้งใจ :)

หวังว่ามันจะช่วย :)


1
ขอบคุณสำหรับสิ่งนี้! ในกรณีของฉันฉันแล้วมีเขตที่กำหนดไว้ในการกำหนดค่า AWS UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128)และทำงานสคริปต์ที่เป็นที่ส่งผลให้เกิดข้อผิดพลาดต่อไปนี้: ทางออกคือการลบ--regionธง
MagentoAaron

23

คำขอในตัวอย่างของคุณคือการสร้างที่ฝากข้อมูล หากคุณพยายามสร้างถังมากเกินไปหรือแทนที่ถังขยะมันจะไม่แข็งแรง

โปรดทราบว่าคุณมีขีด จำกัด 100 ถังสำหรับบัญชี (ดูที่นี่ ) แก้ไข: ตอนนี้ขีด จำกัด นี้เป็น "ขีด จำกัด อ่อน" และคุณสามารถเพิ่มได้หากจำเป็น

โปรดทราบด้วยว่าการสร้างที่เก็บข้อมูลใช้เวลาและ:

... มันไม่เหมาะสมที่จะทำการฝากข้อมูลสร้างหรือลบสายบนเส้นทางรหัสความพร้อมใช้งานสูงของแอปพลิเคชันของคุณ ...

เป็นการดีกว่าที่จะสร้างถังของคุณหนึ่งครั้งจากนั้นคุณสามารถใส่วัตถุได้มากเท่าที่คุณต้องการในถังที่มีอยู่ของคุณ (หรือแม้แต่ชิ้นเดียว)

อย่างไรก็ตามเมื่อทำงานกับระบบที่ต้องล้มเหลวในตอนนี้จากนั้นคุณควรจะสามารถจัดการข้อผิดพลาดและทำให้กระบวนการของคุณช้าลงเมื่อได้รับข้อผิดพลาดดังกล่าว ดูรายละเอียดเพิ่มเติมในAWS เอกสาร


11

ข้อผิดพลาดนี้มักจะเกิดขึ้นเมื่อมีการลบที่ฝากข้อมูลและสร้างที่เก็บข้อมูลใหม่ในชื่อเดียวกับที่เก็บข้อมูลเก่า

ฉันเชื่อว่าเราจะต้องรอระยะเวลาหนึ่งจนกว่าเราจะสามารถสร้างที่เก็บข้อมูลใหม่ในชื่อเดียวกัน



0

คุณจะได้รับข้อความนี้เมื่อคุณมีถังมากกว่า 100 ถังในบัญชีแล้ว มีขีด จำกัด ที่ จำกัด 100 ถัง


-1

เปลี่ยนชื่อที่ฝากข้อมูลของคุณหรือรอ ฉันรอน้อยกว่า 30 นาทีสำหรับฉัน ฉันไม่จำเป็นต้องเปลี่ยนชื่อและฉันไม่สามารถเปลี่ยนได้เมื่อฉันตั้งไว้ - ต้องจับคู่ชื่อโดเมนที่มีอยู่ของฉันกับเว็บไซต์คงที่ที่ฉันต้องการโฮสต์ อย่างไรก็ตามในเวลาน้อยกว่า 30 นาทีมันถูกสร้างขึ้นโดยอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.