View a markdown version of this page

Mendapatkan ID permintaan Amazon S3 untuk AWS Dukungan - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendapatkan ID permintaan Amazon S3 untuk AWS Dukungan

Setiap kali Anda menghubungi AWS Dukungan karena mengalami kesalahan atau perilaku tak terduga di Amazon S3, Anda harus memberikan ID permintaan yang terkait dengan tindakan yang gagal. AWS Dukungan menggunakan ID permintaan ini untuk membantu menyelesaikan masalah yang Anda alami.

ID Permintaan hadir berpasangan, dikembalikan dalam setiap respons yang diproses Amazon S3 (bahkan respons yang salah), dan dapat diakses melalui log verbose. Ada sejumlah metode umum untuk mendapatkan ID permintaan Anda, termasuk log akses server S3 dan AWS CloudTrail peristiwa atau peristiwa data.

Setelah Anda memulihkan log ini, salin dan simpan kedua nilai tersebut, karena Anda akan membutuhkannya saat Anda menghubungi AWS Dukungan. Untuk informasi tentang menghubungi AWS Dukungan, lihat Kon tak AWS atau AWS Dukungan Dokumentasi.

Menggunakan AWS CLI untuk mendapatkan ID permintaan

Untuk mendapatkan ID permintaan Anda saat menggunakan AWS Command Line Interface (AWS CLI), tambahkan --debug ke perintah Anda. Misalnya Anda harus melihat x-amz-request-id dan x-amz-id-2 di log debug seperti yang ditunjukkan di bawah ini:

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

Menggunakan Windows PowerShell untuk mendapatkan ID permintaan

Untuk informasi tentang memulihkan log dengan Windows PowerShell, lihat Login Respon AWS Tools for Windows PowerShell di Blog Alat AWS Pengembang.

Penggunaan AWS CloudTrail peristiwa data untuk mendapatkan ID permintaan

Bucket Amazon S3 yang dikonfigurasi dengan peristiwa CloudTrail data untuk mencatat operasi API tingkat objek S3 menyediakan informasi terperinci tentang tindakan yang diambil oleh pengguna, peran, atau AWS layanan di Amazon S3. Anda dapat mengidentifikasi ID permintaan S3 dengan menanyakan CloudTrail peristiwa dengan Athena.

Untuk informasi selengkapnya, lihat Mengidentifikasi permintaan Amazon S3 menggunakan CloudTrail di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Menggunakan pencatatan log akses server S3 untuk mendapatkan ID permintaan

Bucket Amazon S3 yang dikonfigurasi untuk pencatatan log akses server Amazon S3 memberikan catatan yang detail untuk setiap permintaan yang dibuat ke bucket. Anda dapat mengidentifikasi ID permintaan S3 dengan melakukan kueri log akses server menggunakan Athena.

Untuk informasi selengkapnya, lihat Mengkueri log akses untuk permintaan dengan menggunakan Amazon Athena di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Menggunakan HTTP untuk memperoleh ID Permintaan

Anda dapat memperoleh ID permintaan Anda, x-amz-request-id dan x-amz-id-2 dengan mencatat bit dari permintaan HTTP sebelum itu mencapai aplikasi target. Ada berbagai alat pihak ketiga yang dapat digunakan untuk memulihkan log verbose untuk permintaan HTTP. Pilih satu yang Anda percaya, lalu jalankan alat untuk mendengarkan di port yang dilalui lalu lintas Amazon S3 Anda, saat Anda mengirim permintaan HTTP Amazon S3 lainnya.

Untuk permintaan HTTP, sepasang ID permintaan akan terlihat seperti berikut:

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

Permintaan HTTPS dienkripsi dan tersembunyi di sebagian besar tangkapan paket.

Menggunakan peramban web untuk memperoleh ID permintaan

Sebagian besar peramban web memiliki alat pengembang yang dapat Anda gunakan untuk melihat header permintaan.

Untuk permintaan berbasis peramban web yang memunculkan kesalahan, pasangan ID permintaan akan terlihat seperti contoh berikut.

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

Untuk mendapatkan pasangan ID permintaan dari permintaan yang berhasil, gunakan alat pengembang peramban Anda untuk melihat header respons HTTP.

Menggunakan AWS SDK untuk mendapatkan ID permintaan

Bagian berikut mencakup informasi untuk mengonfigurasi logging dengan menggunakan AWS SDK yang berbeda.

catatan

Meskipun Anda dapat mengaktifkan logging bertele-tele pada setiap permintaan dan respons, jangan sarankan mengaktifkan logging dalam sistem produksi, karena permintaan atau tanggapan yang besar dapat memperlambat aplikasi secara signifikan.

Untuk permintaan AWS SDK, pasangan ID permintaan akan terlihat seperti berikut:

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

Jenis logger dan verbositas ditentukan selama inisialisasi SDK dalam argumen. SDKOptions Contoh berikut menentukan tingkat verbositas sebagai. LogLevel::Debug

Logger default akan menulis ke sistem file dan file diberi nama menggunakan konven aws_sdk_YYYY-MM-DD-HH.log si berikut. Logger membuat file baru pada jam tersebut.

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

Untuk informasi selengkapnya, lihat Bagaimana cara mengaktifkan logging? di AWS SDK untuk wiki C++ pada GitHub.

Go

Anda dapat mengonfigurasi logging dengan menggunakan SDK for Go. Untuk informasi selengkapnya, lihat Log in di Panduan Pengembang AWS SDK untuk Go v2.

Java

Anda dapat mengaktifkan logging untuk permintaan atau tanggapan tertentu untuk menangkap dan mengembalikan hanya header yang relevan. Untuk melakukannya, impor kelas com.amazonaws.services.s3.S3ResponseMetadata. Setelah itu, Anda dapat menyimpan permintaan dalam variabel sebelum melakukan permintaan aktual. Untuk mendapatkan permintaan atau respons yang dicatat, panggil 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());

Atau, Anda dapat menggunakan pencatatan log verbose untuk setiap permintaan dan respons Java. Untuk informasi selengkapnya, lihat Verbose Wire Logging di Panduan Pengembang AWS SDK untuk Java .

JavaScript

Ini AWS SDK untuk JavaScript memiliki logger bawaan sehingga Anda dapat mencatat panggilan API yang Anda buat dengannya. Untuk mengaktifkan logger dan mencetak entri log di konsol, tambahkan pernyataan berikut ke kode Anda:

AWS.config.logger = console;

Untuk informasi selengkapnya, lihat Pencat AWS SDK untuk JavaScript atan Panggilan di Panduan AWS SDK untuk JavaScript Pengembang.

Kotlin

Dengan AWS SDK untuk Kotlin, Anda dapat menentukan mode log untuk pesan tingkat kabel menggunakan kode atau pengaturan lingkungan. Anda dapat mengatur mode log untuk permintaan HTTP dan tanggapan HTTP.

Untuk memilih logging tambahan, atur logMode properti saat Anda membuat klien layanan:

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

Atau, Anda dapat mengatur mode log menggunakan variabel lingkungan:

export SDK_LOG_MODE=LogRequestWithBody|LogResponse

Untuk informasi selengkapnya, lihat Log in di Panduan AWS SDK untuk Kotlin Pengembang.

.NET

Anda dapat mengonfigurasi logging SDK untuk .NET dengan menggunakan alat System.Diagnostics logging bawaan. Untuk informasi selengkapnya, lihat posting Logging dengan Blog SDK untuk .NET AWS Pengembang.

catatan

Secara default, log yang dikembalikan hanya berisi informasi kesalahan. Untuk mendapatkan ID permintaan, file konfigurasi harus memiliki AWSLogMetrics (dan secara opsional, AWSResponseLogging) ditambahkan.

PHP

Anda bisa mendapatkan informasi debug, termasuk data yang dikirim melalui kabel, dengan mengatur opsi debug ke true dalam konstruktor klien.

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

Untuk informasi lebih lanjut, lihat Bagaimana cara melihat data apa yang dikirim melalui kabel? di Panduan Pengembang AWS SDK untuk PHP .

Python (Boto3)

Dengan AWS SDK untuk Python (Boto3), Anda dapat mencatat tanggapan tertentu. Anda dapat menggunakan fitur ini agar hanya menangkap header yang relevan. Kode berikut menunjukkan cara mencatat bagian dari respons terhadap 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'])

Anda juga dapat menangkap pengecualian dan mencatat informasi yang relevan ketika pengecualian diajukan. Untuk informasi selengkapnya, lihat Membedakan informasi berguna dari respons kesalahan di Referensi API SDK untuk Python AWS (Boto).

Selain itu, Anda dapat mengonfigurasi Boto3 agar mengeluarkan log debug verbose menggunakan kode berikut:

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

Untuk informasi selengkapnya, lihat set_stream_logger di Referensi API SDK untuk Python AWS (Boto).

Ruby

Anda bisa mendapatkan ID permintaan Anda menggunakan SDK untuk Ruby Versi 3. Anda dapat mengaktifkan pencatatan kawat HTTP di klien Anda menggunakan kode berikut:

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

Wire logging dapat mencakup informasi sensitif, seperti ID kunci akses Anda. Informasi sensitif harus dibersihkan sebelum dibagikan dengan AWS Dukungan.

Anda juga dapat menemukan ID permintaan objek konteks permintaan dalam respons permintaan atau kesalahan:

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

Untuk informasi selengkapnya, lihat Men-debug menggunakan informasi pelacakan AWS SDK untuk Ruby kabel dari klien di Panduan AWS SDK untuk Ruby Pengembang.

Rust

Untuk mengaktifkan logging, tambahkan tracing-subscriber peti dan inisialisasi di aplikasi Rust Anda.

Tambahkan pustaka penelusuran ke Cargo.toml file Anda:

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

Kemudian, dalam kode Rust Anda, inisialisasi logger di fungsi utama sebelum Anda memanggil operasi SDK apa pun:

tracing_subscriber::fmt::init();

Untuk informasi selengkapnya, lihat Mengonfigurasi dan menggunakan AWS SDK for Rust log di Panduan AWS SDK for Rust Pengembang.