Obtención de información del estado de replicación - Amazon Simple Storage Service

Obtención de información del estado de replicación

El estado de replicación puede ayudarle a determinar el estado actual de un objeto que se replica. El estado de replicación de un objeto de origen devolverá PENDING, COMPLETED, o FAILED. Se devolverá el estado de replicación de una réplica REPLICA.

También puede usar valores de estado de replicación al crear trabajos de replicación por lotes de S3. Por ejemplo, puede utilizar estos valores de estado para replicar objetos que nunca se han replicado o que han producido un error en la replicación. Para obtener más información sobre el uso de estos valores con la replicación por lotes, consulte Uso de la información del estado de la replicación con los trabajos de replicación por lotes.

Información general sobre el estado de replicación

En la replicación, tiene un bucket de origen en el que se configura la replicación y uno o más buckets de destino donde Amazon S3 replica los objetos. Cuando solicita un objeto (mediante GetObject) o los metadatos de un objeto (mediante HeadObject) de estos buckets, Amazon S3 devuelve el encabezado x-amz-replication-status en la respuesta:

  • Al solicitar un objeto del bucket de origen, Amazon S3 devuelve el encabezado x-amz-replication-status si el objeto de su solicitud cumple los requisitos para la replicación.

    Por ejemplo, supongamos que en la configuración de replicación, usted especifica el prefijo del objeto TaxDocs en la configuración de replicación para indicar a Amazon S3 que replique objetos con el prefijo de nombre de clave TaxDocs. Cualquier objeto que cargue que tenga este prefijo de nombre de clave, por ejemplo, TaxDocs/document1.pdf se replicará. Para solicitudes de objetos con este prefijo de nombre de clave, Amazon S3 devuelve el encabezado x-amz-replication-status con uno de los siguientes valores para el estado de replicación del objeto: PENDING, COMPLETED o FAILED.

    nota

    Si la replicación de objetos genera un error después de cargar un objeto, no puede volver a intentar la replicación. Debe volver a cargar el objeto o debe utilizar la replicación por lotes de S3 para replicar los objetos que han producido errores. Para obtener más información sobre el uso de la replicación por lotes, consulte Replicación de objetos existentes con Replicación por lotes.

    Los objetos pasan a un estado FAILED para problemas como la falta de permisos de rol de replicación, permisos de AWS Key Management Service (AWS KMS) o permisos de bucket. En el caso de los errores temporales, como si un bucket o región no están disponibles, el estado de replicación no pasa a FAILED, sino que permanece PENDING. Después de que el recurso vuelva a estar en línea, Amazon S3 reanuda la replicación de esos objetos.

  • Cuando solicita un objeto desde un bucket de destino, si el objeto de la solicitud es una réplica creada por Amazon S3, este devuelve el x-amz-replication-status encabezado con el valor REPLICA.

nota

Antes de eliminar un objeto de un bucket de origen que tiene habilitada la replicación, compruebe el estado de replicación del objeto para asegurarse de que el objeto se haya replicado.

Si la configuración de un S3 Lifecycle está habilitada en el bucket de origen, Amazon S3 suspende las acciones del ciclo de vida hasta que marque el estado de los objetos como COMPLETED o FAILED.

Estado de replicación si se replica en varios buckets de destino

Cuando se replican objetos en varios buckets de destino, el x-amz-replication-status encabezado actúa de manera diferente. El encabezado del objeto de origen devuelve un valor de COMPLETED cuando la replicación se realiza correctamente en todos los destinos. El encabezado permanece en el PENDING valor hasta que se complete la replicación para todos los destinos. Si uno o más destinos fallan la replicación, el encabezado devuelve FAILED.

Estado de replicación si la sincronización de modificación de réplica de Amazon S3 está habilitada

Cuando las reglas de replicación habilitan la sincronización de las réplicas de modificación de Amazon S3, las réplicas pueden informar estados distintos de REPLICA. Si los cambios de metadatos están en proceso de replicación, el encabezado de x-amz-replication-status devuelve PENDING. Si la sincronización de modificaciones de réplica no permite replicar metadatos, el encabezado devuelve FAILED. Si los metadatos se replican correctamente, las réplicas devuelven el encabezado REPLICA.

Uso de la información del estado de la replicación con los trabajos de replicación por lotes

En el momento de crear un trabajo de replicación por lotes, tiene la opción de especificar filtros adicionales, como la fecha de creación de los objetos y el estado de replicación para reducir el alcance del trabajo.

Puede filtrar los objetos para replicar en función del valor ObjectReplicationStatuses, proporcionando uno o varios de los siguientes valores:

  • "NONE": indica que Amazon S3 nunca intentó replicar el objeto antes.

  • "FAILED": indica que Amazon S3 intentó replicar el objeto antes, pero no pudo.

  • "COMPLETED": indica que Amazon S3 replicó el objeto correctamente antes.

  • "REPLICA": indica que se trata de un objeto de réplica que Amazon S3 ha replicado desde otro origen.

Para obtener más información sobre el uso de estos valores de estado de replicación con la replicación por lotes, consulte Filtros para un trabajo de replicación por lotes.

Hallazgo del estado de replicación

Para obtener el estado de replicación de los objetos de un bucket, puede utilizar la herramienta de Amazon S3 Inventory. Amazon S3 envía un archivo CSV al bucket de destino que especifique en la configuración del inventario. También puede usar Amazon Athena para consultar el estado de replicación en el informe de inventario. Para obtener más información acerca del Amazon S3 Inventory, consulte Catálogo y análisis de sus datos con Inventario de S3.

Puede buscar también el estado de replicación de un objeto mediante la consola de Amazon S3, la AWS Command Line Interface (AWS CLI) o el SDK de AWS.

En la consola de Amazon S3, puede ver el estado de replicación de un objeto en la página de detalles del objeto.

  1. Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Instancias.

  3. En la lista Buckets de uso general, elija el nombre del bucket de origen de replicación.

  4. En la lista Objects (Objetos), elija el nombre del objeto. Aparece la página de detalles del objeto.

  5. En la pestaña Propiedades, desplácese hacia abajo hasta la sección Información general sobre la administración de objetos. En Configuraciones de administración, consulte el valor en Estado de replicación.

Use el comando head-object de AWS Command Line Interface (AWS CLI) para recuperar metadatos de objetos, como se muestra en el siguiente ejemplo. Sustituya amzn-s3-demo-source-bucket1 por el nombre del bucket de origen de la replicación y sustituya el otro user input placeholders por su propia información.

aws s3api head-object --bucket amzn-s3-demo-source-bucket1 --key object-key --version-id object-version-id

El comando devuelve los metadatos del objeto, incluido el ReplicationStatus como se muestra en el siguiente ejemplo de respuesta.

{ "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":"\"6805f2cfc46c0f04559748bb039d69ae\"", "Metadata":{ } }

Los siguientes fragmentos de código obtienen el estado de replicación mediante AWS SDK for Java y AWS SDK for .NET, respectivamente.

Java
GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, key); ObjectMetadata metadata = s3Client.getObjectMetadata(metadataRequest); System.out.println("Replication Status : " + metadata.getRawMetadataValue(Headers.OBJECT_REPLICATION_STATUS));
.NET
GetObjectMetadataRequest getmetadataRequest = new GetObjectMetadataRequest { BucketName = sourceBucket, Key = objectKey }; GetObjectMetadataResponse getmetadataResponse = client.GetObjectMetadata(getmetadataRequest); Console.WriteLine("Object replication status: {0}", getmetadataResponse.ReplicationStatus);