Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Siapkan CloudWatch logging untuk REST APIs di API Gateway

Mode fokus
Siapkan CloudWatch logging untuk REST APIs di API Gateway - Amazon API Gateway

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

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

Untuk membantu men-debug masalah yang terkait dengan eksekusi permintaan atau akses klien ke API Anda, Anda dapat mengaktifkan Amazon CloudWatch Logs untuk mencatat panggilan API. Untuk informasi lebih lanjut tentang CloudWatch, lihatPantau eksekusi REST API dengan CloudWatch metrik Amazon.

CloudWatch format log untuk API Gateway

Ada dua jenis log masuk API CloudWatch: logging eksekusi dan logging akses. 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.

Data yang dicatat mencakup kesalahan atau jejak eksekusi (seperti nilai parameter permintaan atau respons atau muatan), data yang digunakan oleh otorisasi Lambda (sebelumnya dikenal sebagai otorisasi khusus), apakah kunci API diperlukan, apakah paket penggunaan diaktifkan, dan informasi lainnya. API Gateway menyunting header otorisasi, nilai kunci API, dan parameter permintaan sensitif serupa dari data yang dicatat.

Untuk meningkatkan postur keamanan Anda, kami sarankan Anda menggunakan pencatatan eksekusi di INFO tingkat ERROR atau. Anda mungkin perlu melakukan ini untuk mematuhi berbagai kerangka kerja kepatuhan. Untuk informasi selengkapnya, lihat kontrol Amazon API Gateway di Panduan AWS Security Hub Pengguna.

Saat Anda menerapkan API, API Gateway membuat grup log dan aliran log di bawah grup log. Grup log diberi nama mengikuti API-Gateway-Execution-Logs_{rest-api-id}/{stage_name} format. Dalam setiap grup log, log dibagi lagi menjadi aliran log, yang diurutkan berdasarkan Waktu Peristiwa Terakhir saat data yang dicatat dilaporkan.

Dalam pencatatan akses, Anda, sebagai pengembang API, ingin mencatat siapa yang telah mengakses API Anda dan bagaimana pemanggil mengakses API. Anda dapat membuat grup log Anda sendiri atau memilih grup log yang sudah ada yang dapat dikelola oleh API Gateway. Untuk menentukan detail akses, Anda memilih $contextvariabel, format log, dan tujuan grup log.

Format log akses harus menyertakan setidaknya $context.requestId atau$context.extendedRequestId. Sebagai praktik terbaik, sertakan $context.requestId dan $context.extendedRequestId dalam format log Anda.

$context.requestId

Ini mencatat nilai di x-amzn-RequestId header. Klien dapat mengganti nilai di x-amzn-RequestId header dengan nilai dalam format pengenal unik universal (UUID). API Gateway mengembalikan ID permintaan ini di header x-amzn-RequestId respons. API Gateway menggantikan permintaan IDs yang diganti yang tidak dalam format UUID dengan log akses Anda. UUID_REPLACED_INVALID_REQUEST_ID

$context.extendedRequestId

ExtendedRequestid adalah ID unik yang dihasilkan API Gateway. API Gateway mengembalikan ID permintaan ini di header x-amz-apigw-id respons. Pemanggil API tidak dapat memberikan atau mengganti ID permintaan ini. Anda mungkin perlu memberikan nilai ini ke AWS Support untuk membantu memecahkan masalah API Anda. Untuk informasi selengkapnya, lihat $contextVariabel untuk model data, otorisasi, templat pemetaan, dan CloudWatch pencatatan akses.

catatan

Hanya $context variabel yang didukung.

Pilih format log yang juga diadopsi oleh backend analitik Anda, seperti Common Log Format (CLF), JSON, XHTML, atau CSV. Anda kemudian dapat memasukkan log akses ke sana secara langsung agar metrik Anda dihitung dan dirender. Untuk menentukan format log, atur grup log ARN pada properti accessLogSettings/destinationArn di atas panggung. Anda dapat memperoleh grup log ARN di konsol. CloudWatch Untuk menentukan format log akses, atur format yang dipilih pada properti accessLogSetting/format di atas panggung.

Contoh beberapa format log akses yang umum digunakan ditampilkan di konsol API Gateway dan dicantumkan sebagai berikut.

  • CLF(Format Log Umum):

    $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime]"$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId
  • JSON:

    { "requestId":"$context.requestId", "extendedRequestId":"$context.extendedRequestId","ip": "$context.identity.sourceIp", "caller":"$context.identity.caller", "user":"$context.identity.user", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "resourcePath":"$context.resourcePath", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength" }
  • XML:

    <request id="$context.requestId"> <extendedRequestId>$context.extendedRequestId</extendedRequestId> <ip>$context.identity.sourceIp</ip> <caller>$context.identity.caller</caller> <user>$context.identity.user</user> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <resourcePath>$context.resourcePath</resourcePath> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> </request>
  • CSV(nilai yang dipisahkan koma):

    $context.identity.sourceIp,$context.identity.caller,$context.identity.user,$context.requestTime,$context.httpMethod,$context.resourcePath,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId

Izin untuk CloudWatch pencatatan

Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. Amazon APIGateway PushToCloudWatchLogs memiliki semua izin yang diperlukan.

catatan

API Gateway memanggil AWS Security Token Service untuk mengambil peran IAM, jadi pastikan itu AWS STS diaktifkan untuk Wilayah. Untuk informasi selengkapnya, lihat Mengelola AWS STS di suatu AWS Wilayah.

Untuk memberikan izin ini ke akun Anda, buat peran IAM apigateway.amazonaws.com sebagai entitas tepercaya, lampirkan kebijakan sebelumnya ke peran IAM, dan tetapkan peran IAM ARN di properti Arn di Akun Anda. cloudWatchRole Anda harus mengatur properti cloudWatchRoleArn secara terpisah untuk setiap AWS Wilayah di mana Anda ingin mengaktifkan CloudWatch Log.

Jika Anda menerima kesalahan saat menyetel ARN peran IAM, periksa pengaturan akun AWS Security Token Service Anda untuk memastikan AWS STS bahwa diaktifkan di Wilayah yang Anda gunakan. Untuk informasi selengkapnya tentang mengaktifkan AWS STS, lihat Mengelola AWS STS di AWS Wilayah di Panduan Pengguna IAM.

Siapkan pencatatan CloudWatch API menggunakan konsol API Gateway

Untuk menyiapkan pencatatan CloudWatch API, Anda harus menerapkan API ke sebuah panggung. Anda juga harus mengonfigurasi ARN peran CloudWatch Log yang sesuai untuk akun Anda.

  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pada panel navigasi utama, pilih Pengaturan, lalu di bawah Logging, pilih Edit.

  3. Untuk ARN peran CloudWatch log, masukkan ARN dari peran IAM dengan izin yang sesuai. Anda perlu melakukan ini sekali untuk setiap Akun AWS yang membuat APIs menggunakan API Gateway.

  4. Di panel navigasi utama, pilih APIs, lalu lakukan salah satu hal berikut:

    1. Pilih API yang ada, lalu pilih panggung.

    2. Buat API, lalu terapkan ke panggung.

  5. Di panel navigasi utama, pilih Tahapan.

  6. Di bagian Log dan penelusuran, pilih Edit.

  7. Untuk mengaktifkan pencatatan eksekusi:

    1. Pilih level logging dari menu dropdown CloudWatch Log. Level logging adalah sebagai berikut:

      • Mati - Logging tidak diaktifkan untuk tahap ini.

      • Hanya kesalahan - Logging diaktifkan hanya untuk kesalahan.

      • Kesalahan dan info log - Logging diaktifkan untuk semua acara.

    2. (Opsional) Pilih Penelusuran data untuk mengaktifkan pencatatan jejak data untuk tahap Anda. Ini dapat berguna untuk memecahkan masalah APIs, tetapi dapat mengakibatkan pencatatan data sensitif.

      catatan

      Kami menyarankan Anda untuk tidak menggunakan penelusuran data untuk produksi APIs.

    3. (Opsional) Pilih Metrik terperinci untuk mengaktifkan CloudWatch metrik terperinci.

    Untuk informasi selengkapnya tentang CloudWatch metrik, lihatPantau eksekusi REST API dengan CloudWatch metrik Amazon.

  8. Untuk mengaktifkan pencatatan akses:

    1. Aktifkan Pencatatan akses khusus.

    2. Untuk akses log tujuan ARN, masukkan ARN dari grup log. Format ARN adalah. arn:aws:logs:{region}:{account-id}:log-group:log-group-name

    3. Untuk Format Log, masukkan format log. Anda dapat memilih CLF, JSON, XHTML, atau CSV. Untuk mempelajari lebih lanjut tentang contoh format log, lihatCloudWatch format log untuk API Gateway.

  9. Pilih Simpan perubahan.

catatan

Anda dapat mengaktifkan pencatatan eksekusi dan mengakses logging secara independen satu sama lain.

API Gateway sekarang siap untuk mencatat permintaan ke API Anda. Anda tidak perlu menerapkan ulang API saat memperbarui pengaturan panggung, log, atau variabel tahap.

Siapkan pencatatan CloudWatch API menggunakan AWS CloudFormation

Gunakan contoh AWS CloudFormation template berikut untuk membuat grup CloudWatch log Amazon Logs dan mengonfigurasi eksekusi dan mengakses logging untuk sebuah panggung. Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. Untuk mempelajari selengkapnya, lihat Mengaitkan akun dengan peran IAM di Panduan AWS CloudFormation Pengguna.

TestStage: Type: AWS::ApiGateway::Stage Properties: StageName: test RestApiId: !Ref MyAPI DeploymentId: !Ref Deployment Description: "test stage description" MethodSettings: - ResourcePath: "/*" HttpMethod: "*" LoggingLevel: INFO AccessLogSetting: DestinationArn: !GetAtt MyLogGroup.Arn Format: $context.extendedRequestId $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime] "$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Join - '-' - - !Ref MyAPI - access-logs
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.