View a markdown version of this page

Obtenir les ID de demande Amazon S3 pour AWS Support - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Obtenir les ID de demande Amazon S3 pour AWS Support

Chaque fois que vous contactez AWS Support parce que vous avez rencontré des erreurs ou un comportement inattendu dans Amazon S3, vous devez fournir les identifiants de demande associés à l'action qui a échoué. AWS Support utilise ces identifiants de demande pour résoudre les problèmes que vous rencontrez.

Les ID de demande viennent par paires, sont renvoyés dans chaque réponse traitée par Amazon S3 (même ceux contenant des erreurs), et sont accessibles via des journaux verbeux. Il existe un certain nombre de méthodes courantes pour obtenir vos identifiants de demande, notamment les journaux et AWS CloudTrail événements d'accès au serveur S3 ou les événements liés aux données.

Après avoir récupéré ces journaux, copiez et conservez ces deux valeurs, car vous en aurez besoin lors de votre contact AWS Support. Pour plus d'informations sur la prise de contact AWS Support, consultez la section Contact AWS ou la AWS Support documentation.

Utilisation de AWS CLI pour obtenir les numéros de demande

Pour obtenir vos identifiants de demande lorsque vous utilisez le AWS Command Line Interface (AWS CLI), ajoutez-les --debug à votre commande. Par exemple, vous devriez voir x-amz-request-id et x-amz-id-2 dans le journal de débogage comme indiqué ci-dessous :

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

Utilisation de Windows PowerShell pour obtenir les ID de demande

Pour plus d'informations sur la restauration des journaux avec Windows PowerShell, consultez la section relative AWS Tools for Windows PowerShell à la connexion aux réponses sur le blog AWS Developer Tools.

Utilisation AWS CloudTrail événements de données pour obtenir les identifiants de demande

Un compartiment Amazon S3 configuré avec CloudTrail des événements de données pour enregistrer les opérations d'API S3 au niveau de l'objet fournit des informations détaillées sur les actions entreprises par un utilisateur, un rôle ou un AWS service dans Amazon S3. Vous pouvez identifier les ID de requête S3 en interrogeant les CloudTrail événements avec Athena.

Pour plus d'informations, consultez la section Identification des requêtes Amazon S3 CloudTrail à l'aide du guide de l'utilisateur d'Amazon Simple Storage Service.

Utilisation de la journalisation des accès au serveur S3 pour obtenir des ID de demande

Un compartiment Amazon S3 configuré pour journaliser les accès au serveur S3 fournit des enregistrements détaillés des demandes qui lui sont soumises. Vous pouvez identifier les ID de demande S3 en interrogeant les journaux d'accès au serveur à l'aide d'Athena.

Pour plus d'informations, consultez la section Interroger les journaux d'accès pour les demandes Amazon Athena à l'aide du guide de l'utilisateur d'Amazon Simple Storage Service.

Utilisation de HTTP pour obtenir des ID de demande

Vous pouvez obtenir les ID de demande, x-amz-request-id et x-amz-id-2 en consignant les bits d'une demande HTTP avant qu'elle n'atteigne l'application cible. Plusieurs outils tiers peuvent être utilisés pour récupérer les journaux verbeux pour les demandes HTTP. Choisissez un outil fiable, exécutez-le pour écouter le port sur lequel le trafic Amazon S3 circule, lorsque vous envoyez une autre demande HTTP Amazon S3.

Pour les demandes HTTP, la paire d'ID de demande ressemble à ce qui suit :

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

Les demandes HTTPS sont chiffrées et masquées dans la plupart des captures de paquet.

Utilisation d'un navigateur web pour obtenir des ID de demande

La plupart des navigateurs web possèdent des outils de développement que vous pouvez utiliser pour consulter les en-têtes de demande.

Pour les demandes basées sur navigateur Web qui renvoient une erreur, la paire d'ID de demande ressemble aux exemples suivants.

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

Pour obtenir la paire d'ID de demande à partir de demandes réussies, utilisez les outils de développeur de votre navigateur pour consulter les en-têtes de réponse HTTP.

Utilisation de AWS SDK pour obtenir les ID de demande

Les sections suivantes contiennent des informations sur la configuration de la journalisation à l'aide de différents AWS kits de développement logiciel.

Note

Bien que vous puissiez activer la journalisation détaillée pour chaque demande et réponse, il est déconseillé d'activer la journalisation dans les systèmes de production, car les demandes ou réponses volumineuses peuvent considérablement ralentir une application.

Pour les demandes du AWS SDK, la paire d'ID de demande ressemblera à ce qui suit :

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

Le type d'enregistreur et la verbosité sont spécifiés lors de l'initialisation du SDK dans l'argument. SDKOptions L'exemple suivant spécifie le niveau de verbosité comme suit. LogLevel::Debug

L'enregistreur par défaut écrit dans le système de fichiers et le fichier est nommé selon la convention suivante. aws_sdk_YYYY-MM-DD-HH.log L'enregistreur crée un nouveau fichier chaque heure.

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

Pour plus d'informations, voir Comment activer la journalisation ? dans le wiki du AWS SDK pour C++ sur GitHub.

Go

Vous pouvez configurer la journalisation à l'aide du SDK for Go. Pour plus d'informations, consultez la section Logging in the AWS SDK pour Go v2 Developer Guide.

Java

Vous pouvez activer la journalisation pour des demandes ou des réponses spécifiques afin de récupérer et de renvoyer uniquement les en-têtes pertinents. Pour ce faire, importez la classe com.amazonaws.services.s3.S3ResponseMetadata. Ensuite, vous pouvez stocker la demande dans une variable avant de faire la demande réelle. Appelez getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID() pour obtenir la demande ou réponse journalisée.

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());

Sinon, vous pouvez utiliser une journalisation verbeuse de chaque demande ou réponse Java. Pour plus d'informations, consultez Verbose Wire Logging (Journalisation du réseau filaire détaillée) dans le Guide du développeur AWS SDK pour Java .

JavaScript

AWS SDK pour JavaScript Il dispose d'un enregistreur intégré qui vous permet d'enregistrer les appels d'API que vous passez avec celui-ci. Pour activer l'enregistreur et imprimer les entrées du journal dans la console, ajoutez l'instruction suivante à votre code :

AWS.config.logger = console;

Pour plus d'informations, consultez la section Journalisation AWS SDK pour JavaScript des appels dans le Guide du AWS SDK pour JavaScript développeur.

Kotlin

Avec le AWS SDK pour Kotlin, vous pouvez spécifier le mode de journalisation pour les messages filaires à l'aide du code ou des paramètres d'environnement. Vous pouvez définir le mode journal pour les requêtes HTTP et les réponses HTTP.

Pour activer la journalisation supplémentaire, définissez la logMode propriété lorsque vous créez un client de service :

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

Vous pouvez également définir le mode journal à l'aide d'une variable d'environnement :

export SDK_LOG_MODE=LogRequestWithBody|LogResponse

Pour plus d'informations, consultez la section Logging in the AWS SDK pour Kotlin Developer Guide.

.NET

Vous pouvez configurer la journalisation à l'aide SDK pour .NET de l'outil de System.Diagnostics journalisation intégré. Pour plus d'informations, consultez l'article de blog Logging with the SDK pour .NET AWS Developer.

Note

Par défaut, le journal renvoyé contient uniquement des informations sur les erreurs. Pour obtenir les ID de demande, le fichier de configuration doit avoir l'élément AWSLogMetrics (et si vous le souhaitez, AWSResponseLogging) ajouté.

PHP

Vous pouvez obtenir des informations de débogage, y compris les données envoyées par câble, en définissant l'option de débogage sur true dans un constructeur client.

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

Pour plus d'informations, consultez How can I see what data is sent over the wire? (Comment savoir quelles données sont envoyées sur le réseau ?) dans le Guide du développeur AWS SDK pour PHP .

Python (Boto3)

Avec le AWS SDK pour Python (Boto3), vous pouvez enregistrer des réponses spécifiques. Vous pouvez utiliser cette fonction pour capturer uniquement les en-têtes pertinents. Le code suivant vous montre comment journaliser des parties de la réponse à un fichier :

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'])

Vous pouvez également intercepter les exceptions et consigner les informations pertinentes lorsqu'une exception est déclenchée. Pour plus d'informations, consultez Discerning useful information from error responses (Obtenir des informations utiles à partir d'erreurs de réponse) dans la Référence d'API du kit SDK AWS for Python (Boto).

En outre, vous pouvez configurer Boto3 pour générer des journaux de débogage verbeux à l'aide du code suivant :

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

Pour plus d'informations, consultez set_stream_logger dans la Référence d'API du kit SDK AWS for Python (Boto).

Ruby

Vous pouvez obtenir vos identifiants de demande à l'aide du SDK pour Ruby version 3. Vous pouvez activer la journalisation par câble HTTP dans votre client à l'aide du code suivant :

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

L'enregistrement des virements peut inclure des informations sensibles, telles que l'identifiant de votre clé d'accès. Les informations sensibles doivent être nettoyées avant de les partager avec le AWS support.

Vous pouvez également trouver l'ID de demande de l'objet de contexte de demande dans la réponse ou l'erreur de demande :

# 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]

Pour plus d'informations, consultez la section Débogage à l'aide des informations de traçage de fils provenant d'un AWS SDK pour Ruby client dans le Guide du AWS SDK pour Ruby développeur.

Rust

Pour activer la journalisation, ajoutez la tracing-subscriber caisse et initialisez-la dans votre application Rust.

Ajoutez la bibliothèque de traçage à votre Cargo.toml fichier :

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

Ensuite, dans votre code Rust, initialisez l'enregistreur dans la fonction principale avant d'appeler une opération du SDK :

tracing_subscriber::fmt::init();

Pour plus d'informations, consultez la section Configuration et utilisation de la connexion AWS SDK pour Rust dans le Guide du AWS SDK pour Rust développeur.