services profesionales para oficial mexico español developer cursos curso certificación certificacion aws java amazon-web-services amazon-s3

java - profesionales - Mensaje de error de AWS: una operación condicional conflictiva está actualmente en curso contra este recurso



curso de amazon web service (5)

Recibo este error intermitentemente

Tengo un programa que usa java aws sdk y carga más de 10s de miles de pequeños archivos a s3. Veo este error intermitentemente

No pude encontrar ninguna respuesta útil después de hacer una búsqueda rápida en Internet.

Tenga en cuenta que el programa de llamada tiene un solo hilo. El subyacente aws java sdk parece usar subprocesos de trabajo.

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)


Este error generalmente ocurre cuando se borra un Cubo y se crea un nuevo Cubo con el mismo nombre que el Cubo antiguo.

Creo que tendremos que esperar cierto tiempo hasta que podamos crear un nuevo depósito con el mismo nombre.


La solicitud en su ejemplo es para crear un cubo. Si intenta crear demasiados depósitos o reemplazar cubos, no es saludable.

Tenga en cuenta que tiene un límite de 100 cubos para una cuenta (consulte here ). EDITAR: Ahora este límite es un "límite suave" y puede aumentarlo si es necesario.

También tenga en cuenta que la creación de un cubo lleva tiempo y:

... no es apropiado crear o eliminar llamadas en la ruta de código de alta disponibilidad de su aplicación ...

Es mejor crear sus cubos una vez y luego, puede colocar tantos objetos como desee en sus cubos existentes (o incluso uno solo).

De todos modos, cuando se trabaja con un sistema que está destinado a fallar de vez en cuando, debe ser capaz de manejar los errores y ralentizar su proceso al recibir dicho error. Ver más detalles en AWS Docs .


Para todos los demás que tropiecen con este hilo de google, como primer resultado en la búsqueda de este mensaje de error:

Si eliminó el depósito, para volver a crear en una nueva región, no espere "manualmente" hasta que se complete esta sincronización en segundo plano , en su lugar ponga un pequeño script bash para ejecutar y vuelva a intentar la creación de cubeta necesaria cada 5 segundos más o menos.

Ejemplo:

#!/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!"

volverá a intentar la operación de "crear cubo", cada pocos segundos (depende de "dormir") y tan pronto como sea posible, se creará para usted, por lo que nadie puede robar el nombre de su cubo por error :)

Espero eso ayude :)


Recibí el mismo mensaje de error, cuando lo hice siguiente:

  1. creó un cubo: se conectó de manera predeterminada a la región de EE. UU. (AWSCLI utilizado)

  2. se dio cuenta, el cubo debe ir a la región de la UE y eliminarlo (se usa la consola de AWS)

  3. (unos minutos más tarde) intentaron crear el cubo, especificando la región de la UE

En el paso 3, la consola de AWS me ha mostrado el mensaje de error del título de su pregunta.

Así que supongo que se eliminó el depósito en EE. UU., Pero posiblemente haya algunos procesos de sincronización, lo que lleva tiempo. Y espero que, al esperar algunas horas, encuentre nuevamente el nombre del cubo disponible para la creación, esta vez en la región adecuada (UE).

REVISIÓN: - Editar: Alrededor de una hora más tarde, mi intento de crear el cubo (en la región de la UE) tuvo éxito.


Simple y sencillo: cambie el nuevo nombre del depósito o espere 1 hora.