source

AWS 오류 메시지:이 리소스에 대해 충돌하는 조건부 작업이 현재 진행 중입니다.

goodcode 2022. 8. 29. 22:09
반응형

AWS 오류 메시지:이 리소스에 대해 충돌하는 조건부 작업이 현재 진행 중입니다.

이 에러는 간헐적으로 발생합니다.

저는 java aws sdk를 사용하여 수천 개의 작은 파일을 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. 버킷 생성 - 기본적으로는 미국 지역(AWSCLI 사용)으로 이동했습니다.

  2. 실현된 버킷은 EU 지역으로 이동하여 삭제합니다(AWS 콘솔 사용).

  3. (몇 분 후) EU 지역을 지정하여 버킷을 작성하려고 했습니다.

3단계에서 AWS 콘솔은 질문 제목에 오류 메시지가 표시되었습니다.

따라서 US 버킷은 삭제되었지만 동기화 프로세스가 몇 가지 있어 시간이 걸릴 수 있습니다.그리고 몇 시간만 기다리면 이번에는 적절한(EU) 지역에서 버킷 이름을 다시 만들 수 있을 것입니다.

픽스:- 편집: 약 1시간 후에 (EU 지역에서) 버킷을 작성하려고 했습니다.

Google에서 이 스레드를 우연히 발견한 다른 모든 경우, 첫 번째 검색 결과로서 다음 오류 메시지가 나타납니다.

버킷을 삭제한 경우 새 영역에서 다시 작성하려면 백그라운드 동기화가 완료될 때까지 "수동으로" 기다리지 말고 작은 bash 스크립트를 실행하여 필요한 버킷 생성을 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!"

"버킷 만들기" 작업을 몇 초마다 재시도합니다('sleep'에 따라 다름). 가능한 한 빨리 - 작성되므로 실수로 버킷 이름을 도용할 수 없습니다.

도움이 되길 바란다:)

이 예의 요구는 버킷을 작성하는 것입니다.너무 많은 버킷을 만들거나 버킷을 바꾸려고 하면 정상 상태가 아닙니다.

계정에는 100버킷의 제한이 있습니다(여기를 참조).편집: 이 제한은 "소프트 제한"이므로 필요에 따라 늘릴 수 있습니다.

또한 버킷 작성에는 시간이 걸리고 다음 사항에 주의하십시오.

...어플리케이션의 하이 어베이러빌리티 코드 패스로 버킷에 콜을 작성하거나 삭제하는 것은 적절하지 않습니다.

버킷을 한 번 만든 후 원하는 개수의 개체를 기존 버킷(또는 단일 버킷)에 넣을 수 있습니다.

어쨌든, 때때로 장해가 발생할 가능성이 있는 시스템을 조작하는 경우, 이러한 에러가 발생했을 때에, 에러를 처리해 처리 속도를 늦출 수 있습니다.자세한 내용은 AWS 문서를 참조하십시오.

일반적으로 이 오류는 버킷이 삭제되고 이전 버킷과 동일한 이름으로 새 버킷이 생성될 때 발생합니다.

같은 이름으로 새 버킷을 만들 수 있을 때까지 일정 시간을 기다려야 할 것 같습니다.

심플하고 알기 쉽게:새 버킷 이름을 변경하거나 1시간 기다립니다.

마지막으로, AWS는 이제 자체 지식 센터에 명확한 답을 제시했습니다. https://aws.amazon.com/premiumsupport/knowledge-center/s3-conflicting-conditional-operation/를 참조하십시오.

방금 버킷을 삭제했습니다(S3 버킷 이름은 글로벌하게 고유하고 다른 AWS 계정에 동일한 버킷을 생성해야 하므로). 동일한 이름의 버킷을 생성하는 스크립트가 동일한 오류로 인해 실패합니다.그래서 나는 인내심을 갖고 한 시간 동안 기다려야 해.

확인 사항: 약 1시간 후에 삭제된 버킷과 동일한 이름의 버킷을 생성할 수 있습니다.

버킷 이름을 변경하거나 기다리십시오.나는 30분도 채 못 기다렸다.이름을 변경할 필요도 없었고, 이미 설정한 상태에서도 변경할 수도 없었습니다.호스트하고 싶은 정적 웹 사이트의 기존 도메인 이름과 일치해야 했습니다.어쨌든 30분도 안 되어 자동으로 생성되었습니다.

계정에 이미 100개가 넘는 버킷이 있는 경우에도 이 메시지가 표시됩니다.소프트 제한은 100 버킷입니다.

Cloud Formation 템플릿을 실행 중 오류가 발생하였습니다.

EC2가 CFN 템플릿을 실행하고 있다고 가정한 IAM 역할에는 S3 버킷을 만들 수 있는 권한이 없는 것으로 나타났습니다.

IAM 액세스를 제공하거나 다른 IAM 역할을 사용하여AWS Configure또는 S3 버킷을 작성하기 위해 필요한 권한을 가진 역할을 프로그래밍 방식으로 가정합니다.

언급URL : https://stackoverflow.com/questions/13898057/aws-error-message-a-conflicting-conditional-operation-is-currently-in-progress

반응형