Recupero degli ID richiesta di Amazon S3 per AWS Support - Amazon Simple Storage Service

Recupero degli ID richiesta di Amazon S3 per AWS Support

Quando è necessario contattare AWS Support per errori o comportamenti imprevisti riscontrati in Amazon S3, occorre recuperare gli ID richiesta associati all'operazione non riuscita. Questi ID richiesta consentono ad AWS Support di risolvere i problemi che si stanno verificando. Gli ID richiesta vengono forniti in coppia, vengono restituiti in ogni risposta elaborata da Amazon S3 (anche quelle vere) ed è possibile accedervi tramite i log dettagliati. Esiste una serie di metodi comuni per ottenere gli ID delle richieste, inclusi, log di accesso S3 ed eventi CloudTrail/eventi dati.

Dopo aver recuperato questi log, copia e conserva i due valori degli ID, in quanto saranno necessari quando contatterai AWS Support. Per informazioni sui contatti AWS Support, consulta la sezione Contattaci.

Utilizzo di HTTP per recuperare gli ID richiesta

È possibile recuperare gli ID richiesta, x-amz-request-id e x-amz-id-2 registrando le parti di una richiesta HTTP prima che raggiunga l'applicazione di destinazione. Esistono diversi strumenti di terze parti che è possibile utilizzare per recuperare i log verbose per le richieste HTTP. Scegliere lo strumento che si preferisce usare ed eseguirlo mettendosi in ascolto sulla porta su cui viaggia il traffico di Amazon S3 mentre si invia un'altra richiesta HTTP Amazon S3.

Per le richieste HTTP, la coppia di ID richiesta sarà simile agli esempi seguenti.

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

Le richieste HTTPS sono crittografate e nascoste nella maggior parte delle acquisizioni dei pacchetti.

Utilizzo di un browser Web per recuperare gli ID richiesta

La maggiore dei browser Web include strumenti per sviluppatori che consentono di visualizzare le intestazioni delle richieste.

Per le richieste basate sul Web che restituiscono un errore, la coppia di ID richiesta sarà simile agli esempi seguenti.

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

Per ottenere la coppia di ID richiesta proveniente da richieste completate, sarà necessario utilizzare gli strumenti per sviluppatori per esaminare le intestazioni delle risposte HTTP. Per informazioni sugli strumenti per gli sviluppatori di browser specifici, consulta Risoluzione dei problemi di Amazon S3 - Recupero degli ID richiesta S3 nei forum per sviluppatori AWS.

Utilizzo degli SDK AWS per recuperare gli ID richiesta

Le sezioni riportate di seguito includono informazioni per la configurazione dei log utilizzando un SDK AWS. Sebbene sia possibile abilitare la registrazione verbose in ogni richiesta e risposta, si sconsiglia di abilitarla nei sistemi di produzione in quanto le richieste e le risposte di grandi dimensioni possono causare notevoli rallentamenti in un'applicazione.

Per le richieste di SDK AWS, la coppia di ID richiesta sarà simile agli esempi seguenti.

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

Utilizzo dell'SDK per PHP per ottenere gli ID richiesta

È possibile configurare la registrazione utilizzando PHP. Per ulteriori informazioni, consulta Come è possibile controllare i dati che vengono trasmessi in rete? nelle Domande frequenti per SDK AWS per PHP.

Utilizzo dell'SDK per Java per ottenere gli ID richiesta

È possibile abilitare la registrazione per richieste o risposte specifiche, per acquisire e restituire solo le intestazioni rilevanti. A tale scopo, importare la classe com.amazonaws.services.s3.S3ResponseMetadata. È quindi possibile archiviare la richiesta in una variabile prima di eseguire la richiesta effettiva. Richiamare getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID() per ottenere la richiesta o la risposta registrata.

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

In alternativa, è possibile utilizzare la registrazione verbose di ogni richiesta e risposta Java. Per ulteriori informazioni, consulta Registrazione in rete verbose nella sezione relativa alla registrazione delle chiamate di SDK AWS per Java della Guida per sviluppatori di AWS SDK for Java.

Utilizzo di AWS SDK for .NET per recuperare gli ID richiesta

È possibile configurare la registrazione in AWS SDK for .NET utilizzando lo strumento di registrazione integrato System.Diagnostics. Per ulteriori informazioni, consulta il post del blog per gli sviluppatori AWS relativo alla Registrazione con SDK AWS per .NET.

Nota

Per default, il log restituito contiene solo informazioni sugli errori. Per recuperare gli ID richiesta, è necessario che al file di configurazione sia aggiunto AWSLogMetrics (ed eventualmente AWSResponseLogging).

Utilizzo dell'SDK per Python (Boto3) per ottenere ID richiesta

Con SDK for Python (Boto3), è possibile registrare risposte specifiche che consentono di acquisire solo le intestazioni pertinenti. Il codice seguente mostra come registrare parti della risposta a un file:

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

È inoltre possibile rilevare le eccezioni e registrare le informazioni pertinenti quando viene sollevata un'eccezione. Per informazioni dettagliate, consultare Discernimento di informazioni utili dalle risposte di errore nella Guida per gli sviluppatori di Boto3

Inoltre, è possibile configurare Boto3 per l'output dei registri di debug dettagliati utilizzando il seguente codice:

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

Per ulteriori informazioni, consulta set_stream_logger nella documentazione di riferimento di Boto3.

Utilizzo dell'SDK per Ruby per ottenere gli ID richiesta

È possibile recuperare gli ID richiesta utilizzando SDK for Ruby - Versione 1, Versione 2 o Versione 3.

  • Mediante l'uso di SDK for Ruby - Versione 1: è possibile abilitare la registrazione in rete HTTP a livello globale utilizzando la seguente riga di codice.

    s3 = AWS::S3.new(:logger => Logger.new($stdout), :http_wire_trace => true)
  • Mediante l'uso di SDK for Ruby - Versione 2 o Versione 3: è possibile abilitare la registrazione in rete HTTP a livello globale utilizzando la seguente riga di codice.

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

Utilizzo di AWS CLI per recuperare gli ID richiesta

È possibile recuperare gli ID richiesta in AWS CLI aggiungendo --debug al comando.