View a markdown version of this page

Obtención de los ID de las solicitudes de Amazon S3 para AWS Support - Amazon Simple Storage Service

Obtención de los ID de las solicitudes de Amazon S3 para AWS Support

Siempre que contacte con AWS Support porque han surgido errores o se ha encontrado con un comportamiento inesperado en Amazon S3, debe proporcionar los ID de las solicitudes relacionadas con la acción que ha fallado. AWS Support utiliza estos ID de las solicitudes para ayudarle a resolver los problemas que está experimentando.

Las ID de solicitudes vienen en pares, se devuelven en cada respuesta que procesa Amazon S3 (incluso las erróneas) y se pueden obtener a través de registros detallados. Hay una serie de métodos comunes para obtener los ID de solicitud, incluidos los registros de acceso al servidor de S3 y los eventos o eventos de datos de AWS CloudTrail.

Después de recuperar estos registros, copie y conserve esos dos valores porque los necesitará cuando contacte con AWS Support. Para obtener más información sobre cómo contactar con AWS Support, consulte Contacte con AWS o la Documentación de AWS Support.

Uso de AWS CLI para obtener ID de solicitudes

Para obtener los ID de solicitudes cuando se use la AWS Command Line Interface (AWS CLI), agregue --debug al comando. Por ejemplo, debería ver x-amz-request-id y x-amz-id-2 en el registro de depuración como se muestra a continuación:

... 2025-04-30 14:35:28,572 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amz-id-2': 'a+zm50vDJH3LLmCiXvwEo0u0PtPS/qCJaBvB2ZMH9dzyzTiJhiLZkBFFoRfsPfOKztUKT/garCI=', 'x-amz-request-id': 'N4NMN0MJ4VDFZMX9', 'Date': 'Wed, 30 Apr 2025 21:35:29 GMT', 'Content-Type': 'application/xml', 'Transfer-Encoding': 'chunked', 'Server': 'AmazonS3'} ...

Uso de Windows PowerShell para obtener ID de solicitudes

Para obtener información sobre la recuperación de registros con Windows PowerShell, consulte Registro de respuesta en AWS Tools for Windows PowerShell en el Blog de herramientas para desarrolladores de AWS.

Uso de eventos de datos de AWS CloudTrail para obtener ID de solicitudes

Un bucket de Amazon S3 configurado con los eventos de datos de CloudTrail para registrar operaciones de la API de nivel de objeto de S3 proporciona información detallada sobre las acciones que realiza un usuario, un rol o un servicio de AWS en Amazon S3. Puede identificar los ID de solicitudes de S3 consultando los eventos de CloudTrail con Athena.

Para obtener más información, consulte Identificación de solicitudes de Amazon S3 mediante CloudTrail en la Guía del usuario de Amazon Simple Storage Service.

Uso del registro de acceso al servidor de S3 para obtener los ID de solicitudes

Un bucket de Amazon S3 configurado para el registro de acceso al servidor S3 proporciona registros detallados para cada solicitud realizada al bucket. Para identificar los ID de solicitudes de S3, consulte los registros de acceso al servidor mediante Athena.

Para obtener más información, consulte Consulta de los registros de acceso de las solicitudes mediante Amazon Athena en la Guía del usuario de Amazon Simple Storage Service.

Utilización de HTTP para obtener los ID de las solicitudes

Para obtener sus ID de solicitudes, x-amz-request-id y x-amz-id-2 puede registrar los detalles de una solicitud HTTP antes de que llegue a la aplicación de destino. Existen diversas herramientas de terceros que se pueden utilizar para recuperar registros detallados para solicitudes HTTP. Elija una de confianza y ejecútela para escuchar en el puerto por el que circula su tráfico de Amazon S3 al mismo tiempo que envía otra solicitud HTTP de Amazon S3.

Para solicitudes HTTP, el par de ID de las solicitudes se verá de la siguiente manera:

x-amz-request-id: 79104EXAMPLEB723 x-amz-id-2: IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km
nota

Las solicitudes HTTPS se cifran y ocultan en la mayoría de las capturas de paquetes.

Utilización de un navegador web para obtener ID de solicitudes

La mayoría de los navegadores web tienen herramientas para desarrolladores que le permiten ver encabezados de solicitudes.

Para las solicitudes basadas en navegador web que devuelven un error, el par de ID de solicitudes se verá como en los siguientes ejemplos.

<Error><Code>AccessDenied</Code><Message>Access Denied</Message> <RequestId>79104EXAMPLEB723</RequestId><HostId>IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km</HostId></Error>

Para obtener el par de ID de solicitudes de solicitudes realizadas correctamente, utilice las herramientas para desarrolladores de su navegador para ver los encabezados de respuesta HTTP.

Uso de los SDK de AWS para obtener los ID de solicitudes

En las siguientes secciones, se incluye información para configurar registros con AWS SDK diferentes.

nota

Si bien puede habilitar registros detallados en cada solicitud y respuesta, no se recomienda habilitar registros en sistemas de producción, porque unas respuestas o solicitudes de gran tamaño pueden causar un retraso significativo en una aplicación.

Para solicitudes de AWS SDK, el par de ID de solicitudes se verá como:

Status Code: 403, AWS Service: Amazon S3, AWS Request ID: 79104EXAMPLEB723 AWS Error Code: AccessDenied AWS Error Message: Access Denied S3 Extended Request ID: IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km
C++

El tipo de registrador y el detalle se especifican durante la inicialización del SDK en el argumento SDKOptions. El ejemplo siguiente especifica el nivel de detalle como LogLevel::Debug.

El registrador predeterminado escribirá en el sistema de archivos y el nombre del archivo seguirá la siguiente convención aws_sdk_YYYY-MM-DD-HH.log. El registrador crea un nuevo archivo cada hora.

Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; Aws::InitAPI(options); // ... Aws::ShutdownAPI(options);

Para obtener más información, consulte ¿Cómo activo el registro? en la wiki del AWS SDK para C++ en GitHub.

Go

Puede configurar el registro mediante SDK para Go. Para obtener más información, consulte Registro en la Guía para desarrolladores de AWS SDK para Go v2.

Java

Puede habilitar el registro para solicitudes o respuestas específicas para detectar y devolver solo encabezados relevantes. Para ello, importe la clase com.amazonaws.services.s3.S3ResponseMetadata. Después, podrá guardar la solicitud en una variable antes de ejecutar la solicitud real. Llame a para obtener la solicitud o respuesta registrada getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID().

PutObjectRequest req = new PutObjectRequest(bucketName, key, createSampleFile()); s3.putObject(req); S3ResponseMetadata md = s3.getCachedResponseMetadata(req); System.out.println("Host ID: " + md.getHostId() + " RequestID: " + md.getRequestId());

Además, puede utilizar registros detallados de cada solicitud y respuesta de Java. Para obtener más información, consulte Registro detallado en red en la Guía del desarrollador de AWS SDK para Java.

JavaScript

AWS SDK para JavaScript dispone de un registrador integrado, por lo que puede registrar las llamadas a la API que realiza con ello. Para activar el registrador e imprimir las entradas de registro en la consola, agregue la siguiente instrucción al código:

AWS.config.logger = console;

Para obtener más información, consulte Registro de llamadas de AWS SDK para JavaScript en la Guía para desarrolladores de AWS SDK para JavaScript.

Kotlin

Con AWS SDK para Kotlin, puede especificar el modo de registro para los mensajes de red mediante código o la configuración del entorno. Puede configurar el modo de registro para las solicitudes HTTP y las respuestas HTTP.

Para optar por un registro adicional, defina la propiedad logMode cuando cree un cliente de servicio:

import aws.smithy.kotlin.runtime.client.LogMode // ... val client = S3Client { // ... logMode = LogMode.LogRequestWithBody + LogMode.LogResponse }

Como alternativa, puede configurar el modo de registro mediante una variable de entorno:

export SDK_LOG_MODE=LogRequestWithBody|LogResponse

Para obtener más información, consulte Registro en la Guía para desarrolladores de AWS SDK para Kotlin.

.NET

Puede configurar registros en SDK para .NET con la herramienta de registro System.Diagnostics integrada. Para obtener más información, consulte la publicación Registro con SDK para .NET del Blog de desarrolladores de AWS.

nota

De forma predeterminada, el registro devuelto solo incluye información de errores. El archivo de configuración debe incluir AWSLogMetrics (y, de forma opcional, AWSResponseLogging) para obtener los ID de solicitudes.

PHP

Puede obtener información de depuración, incluidos los datos enviados a través de la red, estableciendo la opción de depuración en true en un creador de clientes.

$s3Client = new Aws\S3\S3Client([ 'region' => 'us-standard', 'version' => '2006-03-01', 'debug' => true ]);

Para obtener más información, consulte ¿Cómo puedo ver qué datos se envían a través de la red? en la Guía para desarrolladores de AWS SDK para PHP.

Python (Boto3)

AWS SDK para Python (Boto3) le permite registrar respuestas específicas. Puede utilizar esta función para capturar solo los encabezados relevantes. En el siguiente código se muestra cómo registrar partes de la respuesta en un archivo:

import logging import boto3 logging.basicConfig(filename='logfile.txt', level=logging.INFO) logger = logging.getLogger(__name__) s3 = boto3.resource('s3') response = s3.Bucket(bucket_name).Object(object_key).put() logger.info("HTTPStatusCode: %s", response['ResponseMetadata']['HTTPStatusCode']) logger.info("RequestId: %s", response['ResponseMetadata']['RequestId']) logger.info("HostId: %s", response['ResponseMetadata']['HostId']) logger.info("Date: %s", response['ResponseMetadata']['HTTPHeaders']['date'])

También puede detectar excepciones y registrar información relevante cuando se produce una excepción. Para obtener más información, consulte el temas sobre cómo obtener información útil de las respuestas de error en la Referencia de la API de AWS SDK para Python (Boto).

Además, puede configurar Boto3 para generar registros de depuración detallados mediante el siguiente código:

import logging import boto3 boto3.set_stream_logger('', logging.DEBUG)

Para obtener más información, consulte set_stream_logger en la Referencia de la API de AWS SDK para Python (Boto).

Ruby

Puede obtener los ID de solicitudes mediante el SDK para Ruby versión 3. Puede habilitar el registro de red HTTP en el cliente mediante el siguiente código:

s3 = Aws::S3::Client.new(http_wire_trace: true)
nota

El registro de red puede incluir información confidencial, como el ID de clave de acceso. La información confidencial debe sanearse antes de compartirla con AWS Support.

También puede encontrar el ID de solicitud del objeto de contexto de la solicitud en la respuesta o el error de la solicitud:

# Finding the request ID from an error: begin s3.put_object(bucket: 'bucket', key: 'key', body: 'test') rescue Aws::S3::Errors::ServiceError => e puts e.context[:request_id] puts e.context[:s3_host_id] end # Finding the request ID from a successful call: resp = s3.put_object(bucket: 'bucket', key: 'key', body: 'test') puts resp.context[:request_id] puts resp.context[:s3_host_id]

Para obtener más información, consulte Depuración mediante información de rastreo de red de un cliente de AWS SDK para Ruby en la Guía para desarrolladores de AWS SDK para Ruby.

Rust

Para habilitar el registro, agregue la caja tracing-subscriber e inicialícela en su aplicación Rust.

Agregue la biblioteca de rastreo al archivo Cargo.toml:

tracing-subscriber = { version = "0.3", features = ["env-filter"] }

A continuación, en el código de Rust, inicialice el registrador en la función principal antes de llamar a cualquier operación del SDK:

tracing_subscriber::fmt::init();

Para obtener más información, consulte Configuración y uso de registros en AWS SDK para Rust en la Guía para desarrolladores de AWS SDK para Rust.