Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan logging untuk WebSocket APIs di API Gateway
Anda dapat mengaktifkan logging untuk menulis log ke CloudWatch Log. Ada dua jenis API login CloudWatch: eksekusi logging dan akses logging. Dalam pencatatan eksekusi, API Gateway mengelola CloudWatch Log. Prosesnya mencakup pembuatan grup log dan aliran log, dan pelaporan ke aliran log permintaan dan tanggapan pemanggil apa pun.
Dalam pencatatan akses, Anda, sebagai API pengembang, ingin mencatat siapa yang telah mengakses Anda API dan bagaimana penelepon mengakses file. API Anda dapat membuat grup log Anda sendiri atau memilih grup log yang ada yang dapat dikelola oleh API Gateway. Untuk menentukan rincian akses, Anda memilih $context
variabel (dinyatakan dalam format pilihan Anda) dan memilih grup log sebagai tujuan.
Untuk petunjuk tentang cara mengatur CloudWatch logging, lihatSiapkan CloudWatch API logging menggunakan konsol API Gateway.
Saat Anda menentukan Format Log, Anda dapat memilih variabel konteks mana yang akan dicatat. Variabel berikut didukung.
Parameter | Deskripsi |
---|---|
$context.apiId |
APIGateway pengenal menetapkan ke Anda. API |
$context.authorize.error |
Pesan kesalahan otorisasi. |
$context.authorize.latency |
Latensi otorisasi di ms. |
$context.authorize.status |
Kode status dikembalikan dari upaya otorisasi. |
$context.authorizer.error |
Pesan kesalahan dikembalikan dari otorisasi. |
$context.authorizer.integrationLatency |
Latensi otorisasi Lambda di ms. |
$context.authorizer.integrationStatus |
Kode status dikembalikan dari otorisasi Lambda. |
$context.authorizer.latency |
Latensi otorisasi di ms. |
$context.authorizer.requestId |
ID permintaan AWS titik akhir. |
$context.authorizer.status |
Kode status dikembalikan dari otorisasi. |
$context.authorizer.principalId |
Identifikasi pengguna utama yang terkait dengan token yang dikirim oleh klien dan dikembalikan dari fungsi Lambda otorisasi API Gateway Lambda. (Authorizer Lambda sebelumnya dikenal sebagai otorisasi khusus.) |
$context.authorizer. |
Nilai stringifikasi dari pasangan nilai kunci yang ditentukan dari
memanggil |
$context.authenticate.error |
Pesan kesalahan dikembalikan dari upaya otentikasi. |
$context.authenticate.latency |
Latensi otentikasi di ms. |
$context.authenticate.status |
Kode status dikembalikan dari upaya otentikasi. |
$context.connectedAt |
Waktu koneksi yang diformat Epoch |
$context.connectionId |
ID unik untuk koneksi yang dapat digunakan untuk membuat callback ke klien. |
$context.domainName |
Sebuah nama domain untuk WebSocket API Ini dapat digunakan untuk membuat panggilan balik ke klien (bukan nilai hardcode). |
$context.error.message |
String yang berisi pesan kesalahan API Gateway. |
$context.error.messageString |
Nilai yang dikutip dari$context.error.message , yaitu"$context.error.message" . |
$context.error.responseType |
Jenis respons kesalahan. |
$context.error.validationErrorString |
Sebuah string yang berisi pesan kesalahan validasi rinci. |
$context.eventType |
Jenis acara: |
$context.extendedRequestId |
Setara dengan$context.requestId . |
$context.identity.accountId |
ID AWS akun yang terkait dengan permintaan. |
$context.identity.apiKey |
Kunci API pemilik yang terkait dengan permintaan berkemampuan kunciAPI. |
$context.identity.apiKeyId |
ID API kunci yang terkait dengan permintaan berkemampuan kunci API |
$context.identity.caller |
Pengenal utama penelepon yang menandatangani permintaan. Didukung untuk rute yang menggunakan IAM otorisasi. |
$context.identity.cognitoAuthenticationProvider |
Daftar dipisahkan koma dari semua penyedia otentikasi Amazon Cognito yang digunakan oleh penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito. Misalnya, untuk identitas dari kumpulan pengguna Amazon Cognito, Untuk informasi tentang penyedia autentikasi Amazon Cognito yang tersedia, lihat Menggunakan Identitas Federasi di Panduan Pengembang Amazon Cognito. |
$context.identity.cognitoAuthenticationType |
Jenis otentikasi Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito. Nilai yang mungkin termasuk |
$context.identity.cognitoIdentityId |
ID identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito. |
$context.identity.cognitoIdentityPoolId |
ID kumpulan identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito. |
$context.identity.principalOrgId |
ID AWS organisasi. Didukung untuk rute yang menggunakan IAM otorisasi. |
$context.identity.sourceIp |
Alamat IP sumber TCP koneksi membuat permintaan ke API Gateway. |
$context.identity.user |
Pengidentifikasi utama pengguna yang akan diotorisasi terhadap akses sumber daya. Didukung untuk rute yang menggunakan IAM otorisasi. |
$context.identity.userAgent |
Agen pengguna API penelepon. |
$context.identity.userArn |
Nama Sumber Daya Amazon (ARN) dari pengguna efektif yang diidentifikasi setelah otentikasi. |
$context.integration.error |
Pesan kesalahan dikembalikan dari integrasi. |
$context.integration.integrationStatus |
Untuk integrasi proxy Lambda, kode status dikembalikan dari AWS Lambda, bukan dari kode fungsi Lambda backend. |
$context.integration.latency |
Latensi integrasi dalam ms. Setara dengan$context.integrationLatency . |
$context.integration.requestId |
ID permintaan AWS titik akhir. Setara dengan$context.awsEndpointRequestId . |
$context.integration.status |
Kode status dikembalikan dari integrasi. Untuk integrasi proxy Lambda, ini adalah kode status yang dikembalikan oleh kode fungsi Lambda Anda. Setara dengan$context.integrationStatus . |
$context.integrationLatency |
Latensi integrasi dalam ms, hanya tersedia untuk pencatatan akses. |
$context.messageId |
ID sisi server unik untuk pesan. Hanya tersedia ketika |
$context.requestId |
Sama seperti |
$context.requestTime |
Waktu permintaan CLFdd/MMM/yyyy:HH:mm:ss
+-hhmm . |
$context.requestTimeEpoch |
Waktu permintaan yang diformat Epoch |
$context.routeKey |
Kunci rute yang dipilih. |
$context.stage |
Tahap penerapan API panggilan (misalnya, beta atau prod). |
$context.status |
Status respon. |
$context.waf.error |
Pesan kesalahan dikembalikan dari AWS WAF. |
$context.waf.latency |
AWS WAF Latensi dalam ms. |
$context.waf.status |
Kode status dikembalikan dari AWS WAF. |
Contoh beberapa format log akses yang umum digunakan ditampilkan di konsol API Gateway dan tercantum sebagai berikut.
-
CLF
(Format Log Umum): $context.identity.sourceIp $context.identity.caller \ $context.identity.user [$context.requestTime] "$context.eventType $context.routeKey $context.connectionId" \ $context.status $context.requestId
Karakter kelanjutan (
\
) dimaksudkan sebagai alat bantu visual. Format log harus satu baris. Anda dapat menambahkan karakter baris baru (\n
) di akhir format log untuk menyertakan baris baru di akhir setiap entri log. -
JSON
:{ "requestId":"$context.requestId", \ "ip": "$context.identity.sourceIp", \ "caller":"$context.identity.caller", \ "user":"$context.identity.user", \ "requestTime":"$context.requestTime", \ "eventType":"$context.eventType", \ "routeKey":"$context.routeKey", \ "status":"$context.status", \ "connectionId":"$context.connectionId" }
Karakter kelanjutan (
\
) dimaksudkan sebagai alat bantu visual. Format log harus satu baris. Anda dapat menambahkan karakter baris baru (\n
) di akhir format log untuk menyertakan baris baru di akhir setiap entri log. -
XML
:<request id="$context.requestId"> \ <ip>$context.identity.sourceIp</ip> \ <caller>$context.identity.caller</caller> \ <user>$context.identity.user</user> \ <requestTime>$context.requestTime</requestTime> \ <eventType>$context.eventType</eventType> \ <routeKey>$context.routeKey</routeKey> \ <status>$context.status</status> \ <connectionId>$context.connectionId</connectionId> \ </request>
Karakter kelanjutan (
\
) dimaksudkan sebagai alat bantu visual. Format log harus satu baris. Anda dapat menambahkan karakter baris baru (\n
) di akhir format log untuk menyertakan baris baru di akhir setiap entri log. -
CSV
(nilai yang dipisahkan koma):$context.identity.sourceIp,$context.identity.caller, \ $context.identity.user,$context.requestTime,$context.eventType, \ $context.routeKey,$context.connectionId,$context.status, \ $context.requestId
Karakter kelanjutan (
\
) dimaksudkan sebagai alat bantu visual. Format log harus satu baris. Anda dapat menambahkan karakter baris baru (\n
) di akhir format log untuk menyertakan baris baru di akhir setiap entri log.