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 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.

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. Para obtener información acerca de las herramientas para desarrolladores para navegadores específicos, consulte Solución de problemas de Amazon S3 - Cómo recuperar sus ID de solicitudes de S3 en AWS re:Post.

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

En las siguientes secciones, se incluye información para configurar registros con un SDK de AWS. 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.

En el caso de las solicitudes del SDK de AWS, el par de ID de solicitudes se verá como en los siguientes ejemplos.

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

Uso del SDK para Go para obtener ID de solicitudes

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

Uso del SDK para PHP para obtener ID de solicitudes

Puede usar PHP para configurar el registro. 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 for PHP.

Uso del SDK para Java para obtener ID de solicitudes

Puede habilitar el registro para solicitudes o respuestas específicas para detectar y devolver solo los 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 getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID() para obtener la solicitud o respuesta registrada.

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 for Java.

Uso de AWS SDK for .NET para obtener ID de solicitudes

Puede configurar registros en AWS SDK for .NET con la herramienta de registro System.Diagnostics integrada. Para obtener más información, consulte la publicación sobre el registro con AWS SDK for .NET del blog para 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.

Uso del SDK para Python (Boto3) para obtener los ID de solicitudes

AWS SDK for 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 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).

Uso del SDK para Ruby para obtener los ID de solicitudes

Para obtener sus ID de solicitudes puede usar las versiones 1, 2 o 3 del SDK para Ruby.

  • Si utiliza la versión 1 del SDK para Ruby: puede activar el registro en red HTTP a nivel global con la siguiente línea de código.

    s3 = AWS::S3.new(:logger => Logger.new($stdout), :http_wire_trace => true)
  • Si utiliza la versión 2 o la versión 3 del SDK para Ruby: puede activar el registro en red HTTP a nivel global con la siguiente línea de código.

    s3 = Aws::S3::Client.new(:logger => Logger.new($stdout), :http_wire_trace => true)

Para obtener consejos sobre la obtención de información de red de un cliente AWS, consulte Consejos para la depuración: Obtener información del rastro de red de un cliente.

Uso de AWS CLI para obtener ID de solicitudes

Para obtener los ID de solicitudes cuando utilices la AWS Command Line Interface (AWS CLI), agregue --debug al comando .

Uso de Windows PowerShell para obtener ID de solicitudes

Para obtener información sobre la recuperación de registros con Windows PowerShell, consulte la entrada del blog sobre el registro de respuestas en AWS Tools for Windows PowerShell .NET Development.

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.

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.