Abrufen Amazon S3 S3-Anfrage-IDs für AWS Support - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Abrufen Amazon S3 S3-Anfrage-IDs für AWS Support

Wann immer Sie Kontakt aufnehmen AWS Support , weil Sie auf Fehler oder unerwartetes Verhalten in Amazon S3 gestoßen sind, müssen Sie die Anfrage-IDs angeben, die mit der fehlgeschlagenen Aktion verknüpft sind. AWS Support verwendet diese Anfrage-IDs, um die bei Ihnen aufgetretenen Probleme zu lösen.

Anfrage-IDs werden paarweise vergeben. Sie werden in jeder von Amazon S3 verarbeiteten Antwort zurückgegeben (auch in den fehlerhaften). Der Zugriff darauf erfolgt über Verbose-Protokolle. Es gibt eine Reihe gängiger Methoden, um Ihre Anfrage-IDs abzurufen, darunter S3-Zugriffsprotokolle und AWS CloudTrail Ereignisse oder Datenereignisse.

Nachdem Sie diese Protokolle wiederhergestellt haben, kopieren Sie diese beiden Werte und behalten Sie sie bei, da Sie sie benötigen, wenn Sie Kontakt aufnehmen AWS Support. Informationen zur Kontaktaufnahme finden Sie AWS Support unter Kontakt AWS oder in der AWS Support Dokumentation.

Abrufen der Anforderungs-IDs mithilfe von HTTP

Sie können Ihre Anfrage-IDs x-amz-request-id und x-amz-id-2 ermitteln, indem Sie die Abschnitte einer HTTP-Anfrage protokollieren, bevor sie die Zielanwendung erreicht. Es gibt verschiedene Tools von Drittanbietern, mit denen Verbose-Protokolle für HTTP-Anfragen wiederhergestellt werden können. Wählen Sie ein Tool, dem Sie vertrauen, führen Sie es aus und überwachen Sie den Port, über den Ihr Amazon-S3-Datenverkehr läuft, während Sie eine weitere Amazon-S3-HTTP-Anforderung senden.

Bei HTTP-Anforderungen sieht das Paar der Anforderungs-IDs wie in den folgenden Beispielen gezeigt aus:

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

HTTPS-Anfragen werden in den meisten Paketerfassungen verschlüsselt und verborgen.

Abrufen der Anforderungs-IDs mithilfe eines Webbrowsers

Die meisten Webbrowser beinhalten Entwickler-Tools, mit denen Sie Anforderungs-Header anzeigen können.

Für auf einem Webbrowser basierte Anfragen, die einen Fehler zurückgeben, sieht das Paar der Anfrage-IDs wie in den folgenden Beispielen gezeigt aus.

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

Zeigen Sie die HTTP-Anforderungs-Header mithilfe der Entwickler-Tools zu Ihrem Browser an, um das Paar der Anforderungs-IDs aus erfolgreichen Anforderungen abzurufen. Weitere Informationen zu Entwickler-Tools für spezifische Browser finden Sie unter Fehlerbehebung für Amazon S3 – Wiederherstellung Ihrer S3-Anforderungs-IDs in AWS re:Post.

Verwendung der AWS SDKs zum Abrufen von Anfrage-IDs

Die folgenden Abschnitte enthalten Informationen für die Konfiguration der Protokollierung unter Verwendung eines AWS -SDK. Auch wenn Sie die Verbose-Protokollierung für jede Anforderung und jede Antwort aktivieren können, sollten Sie die Protokollierung nicht in Produktionssystemen aktivieren, da große Anforderungen und Antworten eine Anwendung erheblich verlangsamen können.

Bei AWS SDK-Anfragen sieht das Paar von Anforderungs-IDs wie in den folgenden Beispielen aus.

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

Verwenden des SDK for Go zum Abrufen von Anfrage-IDs

Sie können die Protokollierung mithilfe von SDK for Go konfigurieren. Weitere Informationen finden Sie unter Antwortmetadaten im SDK for Go V2 Developer Guide.

Abrufen der Anforderungs-IDs mithilfe des SDK für PHP

Sie können die Protokollierung mit PHP konfigurieren. Weitere Informationen finden Sie unter Wie kann ich sehen, welche Daten übertragen wurden? im Entwicklerhandbuch zum AWS SDK for PHP .

Abrufen der Anforderungs-IDs mithilfe des SDK für Java

Sie können die Protokollierung für spezifische Anforderungen oder Antworten aktivieren, um nur die relevanten Header zu erfassen und zurückzugeben. Dazu importieren Sie die Klasse com.amazonaws.services.s3.S3ResponseMetadata. Anschließend können Sie die Anforderung in einer Variablen speichern, bevor Sie die eigentliche Anforderung ausführen. Rufen Sie getCachedResponseMetadata(AmazonWebServiceRequest request).getRequestID() auf, um die protokollierte Anforderung oder Antwort zu erhalten.

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

Alternativ können Sie eine Verbose-Protokollierung jeder Java-Anfrage und -Antwort verwenden. Weitere Informationen finden Sie unter Verbose-Protokollierung des Netzwerkverkehrs im Entwicklerhandbuch zu AWS SDK for Java .

Verwenden von AWS SDK for .NET , um Anfrage-IDs zu erhalten

Sie können die Protokollierung mit dem konfigurieren, AWS SDK for .NET indem Sie das integrierte System.Diagnostics Protokollierungstool verwenden. Weitere Informationen finden Sie im Blogbeitrag Logging with the AWS SDK for .NETAWS Developer.

Anmerkung

Standardmäßig enthält das zurückgegebene Protokoll nur Fehlerinformationen. Zum Abrufen der Anforderungs-IDs muss der Konfigurationsdatei AWSLogMetrics (und optional AWSResponseLogging) hinzugefügt werden.

Abrufen der Anforderungs-IDs mithilfe des SDK für Python (Boto3)

Mit dem AWS SDK for Python (Boto3) können Sie bestimmte Antworten protokollieren. Sie können diese Funktion verwenden, um nur die relevanten Header zu erfassen. Der folgende Code zeigt, wie Teile der Antwort in einer Datei protokolliert werden:

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

Sie können auch Ausnahmen abfangen und relevante Informationen protokollieren, wenn eine Ausnahme ausgelöst wird. Weitere Informationen finden Sie unter Erkennen nützlicher Informationen in Fehlerantworten in der API-Referenz zum AWS SDK für Python (Boto).

Darüber hinaus können Sie Boto3 mit dem folgenden Code für die Ausgabe ausführlicher Debugging-Protokolle konfigurieren:

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

Weitere Informationen finden Sie unter set_stream_logger in der API-Referenz zum AWS SDK für Python (Boto).

Abrufen der Anforderungs-IDs mithilfe des SDK für Ruby

Sie können die Anforderungs-IDs mit dem SDK für Ruby Version 1, 2 oder 3 abrufen.

  • Verwenden von SDK für Ruby – Version 1 – Mit der folgenden Codezeile können Sie eine globale HTTP-Übertragungsprotokollierung aktivieren.

    s3 = AWS::S3.new(:logger => Logger.new($stdout), :http_wire_trace => true)
  • Verwenden von SDK für Ruby – Version 2 oder Version 3 – Mit der folgenden Codezeile können Sie eine globale HTTP-Übertragungsprotokollierung aktivieren.

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

Tipps zum Abrufen von Wire-Informationen von einem AWS Client finden Sie unter Debug-Tipp: Abrufen von Wire-Trace-Informationen von einem Client.

Verwenden von AWS CLI , um Anforderungs-IDs zu erhalten

Um Ihre Anfrage-IDs zu erhalten, wenn Sie die AWS Command Line Interface (AWS CLI) verwenden, fügen Sie --debug sie Ihrem Befehl hinzu.

Verwenden von Windows PowerShell zum Abrufen von Anforderungs-IDs

Informationen zum Wiederherstellen von Protokollen mit Windows PowerShell finden Sie im Blogbeitrag Response Logging AWS Tools for Windows PowerShell in.NET Development.

Verwenden von AWS CloudTrail Datenereignissen zum Abrufen von Anforderungs-IDs

Ein Amazon S3-Bucket, der mit CloudTrail Datenereignissen konfiguriert ist, um S3-API-Operationen auf Objektebene zu protokollieren, bietet detaillierte Informationen über Aktionen, die von einem Benutzer, einer Rolle oder einem AWS Service in Amazon S3 ausgeführt werden. Sie können S3-Anfrage-IDs identifizieren, indem Sie CloudTrail Ereignisse mit Athena abfragen.

Abrufen der Anforderungs-IDs mithilfe der S3-Server-Zugriffsprotokollierung

Ein Amazon-S3-Bucket, der für die S3-Server-Zugriffsprotokollierung konfiguriert ist, stellt detaillierte Aufzeichnungen zu allen an den Bucket gesendeten Anforderungen bereit. Sie können S3-Anforderungs-IDs identifizieren, indem Sie die Serverzugriffsprotokolle mit Athena abfragen.