

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

# Pantau REST APIs di API Gateway
<a name="rest-api-monitor"></a>

Di bagian ini, Anda dapat mempelajari cara memantau API menggunakan CloudWatch metrik, CloudWatch Log, Firehose, dan. AWS X-Ray Dengan menggabungkan log CloudWatch eksekusi dan CloudWatch metrik, Anda dapat mencatat kesalahan dan jejak eksekusi, serta memantau kinerja API Anda. Anda mungkin juga ingin mencatat panggilan API ke Firehose. Anda juga dapat menggunakan AWS X-Ray untuk melacak panggilan melalui layanan hilir yang membentuk API Anda.

**catatan**  
API Gateway mungkin tidak menghasilkan log dan metrik dalam kasus berikut:  
413 Kesalahan Permintaan Entitas Terlalu Besar
431 Permintaan Bidang Header Kesalahan Terlalu Besar
Berlebihan 429 Terlalu Banyak Kesalahan Permintaan
400 error seri dari permintaan yang dikirim ke domain kustom yang tidak memiliki pemetaan API
500 kesalahan seri yang disebabkan oleh kegagalan internal
API Gateway tidak akan menghasilkan log dan metrik saat menguji metode REST API. CloudWatch Entri disimulasikan. Lihat informasi yang lebih lengkap di [Menggunakan konsol API Gateway untuk menguji metode REST API](how-to-test-method.md).

**Topics**
+ [Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md)
+ [Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md)
+ [Log panggilan REST API ke Amazon Data Firehose di API Gateway](apigateway-logging-to-kinesis.md)
+ [Variabel untuk pencatatan akses untuk API Gateway](api-gateway-variables-for-access-logging.md)
+ [Lacak permintaan pengguna ke REST APIs menggunakan X-Ray di API Gateway](apigateway-xray.md)

# Pantau eksekusi REST API dengan CloudWatch metrik Amazon
<a name="monitoring-cloudwatch"></a>

Anda dapat memantau eksekusi API dengan menggunakan CloudWatch, yang mengumpulkan dan memproses data mentah dari API Gateway menjadi metrik yang dapat dibaca. near-real-time Statistik ini dicatat untuk jangka waktu 15 bulan sehingga Anda dapat mengakses informasi historis dan mendapatkan perspektif yang lebih baik tentang kinerja aplikasi atau layanan web Anda. Secara default, data metrik API Gateway dikirim secara otomatis CloudWatch dalam periode satu menit. Untuk informasi selengkapnya, lihat [Apa itu Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) di *Panduan CloudWatch Pengguna Amazon*.

Metrik yang dilaporkan oleh API Gateway memberikan informasi yang dapat Anda analisis dengan berbagai cara. Daftar berikut menunjukkan beberapa kegunaan umum untuk metrik yang merupakan saran untuk Anda mulai:
+ Pantau **IntegrationLatency**metrik untuk mengukur respons backend.
+ Pantau metrik **Latensi** untuk mengukur respons panggilan API Anda secara keseluruhan.
+ Pantau **CacheHitCount**dan **CacheMissCount**metrik untuk mengoptimalkan kapasitas cache untuk mencapai kinerja yang diinginkan.

**Topics**
+ [Dimensi dan metrik Amazon API Gateway](api-gateway-metrics-and-dimensions.md)
+ [Lihat CloudWatch metrik dengan dasbor API di API Gateway](how-to-api-dashboard.md)
+ [Lihat metrik API Gateway di konsol CloudWatch](metrics_dimensions_view_in_cloud_watch.md)
+ [Melihat peristiwa log API Gateway di CloudWatch konsol](view-cloudwatch-log-events-in-cloudwatch-console.md)
+ [Alat pemantauan AWS untuk API Gateway](monitoring_automated_manual.md)

# Dimensi dan metrik Amazon API Gateway
<a name="api-gateway-metrics-and-dimensions"></a>

Metrik dan dimensi yang dikirimkan API Gateway ke Amazon CloudWatch tercantum di bawah ini. Untuk informasi selengkapnya, lihat [Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md). 

## Metrik API Gateway
<a name="api-gateway-metrics"></a>

Amazon API Gateway mengirimkan data metrik ke CloudWatch setiap menit.

Namespace `AWS/ApiGateway` mencakup metrik berikut.


| Metrik | Deskripsi | 
| --- | --- | 
|  4XXError |  Jumlah kesalahan sisi klien yang ditangkap dalam periode tertentu. API Gateway menghitung kode status respons gateway yang dimodifikasi sebagai 4 XXError kesalahan. `Sum`Statistik mewakili metrik ini, yaitu, jumlah total 4XXError kesalahan dalam periode tertentu. `Average`Statistik mewakili tingkat 4XXError kesalahan, yaitu, jumlah total 4XXError kesalahan dibagi dengan jumlah total permintaan selama periode tersebut. Penyebut sesuai dengan Count metrik (di bawah). Unit: Count  | 
|  5XXError  |  Jumlah kesalahan sisi server yang ditangkap dalam periode tertentu. `Sum`Statistik mewakili metrik ini, yaitu, jumlah total 5XXError kesalahan dalam periode tertentu. `Average`Statistik mewakili tingkat 5XXError kesalahan, yaitu, jumlah total 5XXError kesalahan dibagi dengan jumlah total permintaan selama periode tersebut. Penyebut sesuai dengan Count metrik (di bawah). Unit: Count  | 
|  CacheHitCount  |  Jumlah permintaan yang disajikan dari cache API dalam periode tertentu. `Sum`Statistik mewakili metrik ini, yaitu, jumlah total hit cache pada periode tertentu. `Average`Statistik mewakili tingkat hit cache, yaitu, jumlah total klik cache dibagi dengan jumlah total permintaan selama periode tersebut. Penyebut sesuai dengan Count metrik (di bawah). Unit: Count  | 
|  CacheMissCount  |  Jumlah permintaan yang disajikan dari backend dalam periode tertentu, saat caching API diaktifkan. `Sum`Statistik mewakili metrik ini, yaitu, jumlah total cache yang hilang dalam periode tertentu. `Average`Statistik mewakili tingkat kehilangan cache, yaitu, jumlah total cache yang hilang dibagi dengan jumlah total permintaan selama periode tersebut. Penyebut sesuai dengan Count metrik (di bawah). Unit: Count  | 
|  Count  |  Jumlah total permintaan API dalam periode tertentu. `SampleCount`Statistik mewakili metrik ini. Unit: Count  | 
|  IntegrationLatency  |  Waktu antara saat API Gateway menyampaikan permintaan ke backend dan saat menerima respons dari backend. Unit: Millisecond  | 
|  Latency  |  Waktu antara saat API Gateway menerima permintaan dari klien dan saat mengembalikan respons ke klien. Latensi mencakup latensi integrasi dan overhead API Gateway lainnya. Unit: Millisecond  | 

## Dimensi untuk metrik
<a name="api-gateway-metricdimensions"></a>

Anda dapat menggunakan dimensi dalam tabel berikut untuk memfilter metrik API Gateway.

**catatan**  
API Gateway menghapus karakter non-ASCII dari ApiName dimensi sebelum mengirim metrik ke. CloudWatch Jika tidak APIName mengandung karakter ASCII, API ID digunakan sebagai. ApiName


| Dimensi | Deskripsi | 
| --- | --- | 
|  ApiName  |  Memfilter metrik API Gateway untuk REST API dengan nama API yang ditentukan.  | 
|  ApiName, Method, Resource, Stage  |  Memfilter metrik API Gateway untuk metode API dengan nama API, tahapan, sumber daya, dan metode yang ditentukan. API Gateway tidak akan mengirimkan metrik ini kecuali Anda telah mengaktifkan metrik terperinci secara eksplisit. CloudWatch Di konsol, pilih panggung, lalu untuk **Log dan penelusuran**, pilih **Edit**. Pilih **Metrik terperinci**, lalu pilih **Simpan perubahan**. Atau, Anda dapat memanggil AWS CLI perintah [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) untuk memperbarui properti ke. `metricsEnabled` `true` Mengaktifkan metrik ini akan dikenakan biaya tambahan ke akun Anda. Untuk informasi harga, lihat [ CloudWatchHarga Amazon](https://aws.amazon.com/cloudwatch/pricing/).  | 
|  ApiName, Stage  |  Memfilter metrik API Gateway untuk sumber daya tahap API dengan nama dan tahapan API yang ditentukan.  | 

# Lihat CloudWatch metrik dengan dasbor API di API Gateway
<a name="how-to-api-dashboard"></a>

Anda dapat menggunakan dasbor API di API Gateway Console untuk menampilkan CloudWatch metrik API yang Anda gunakan di API Gateway. Ini ditampilkan sebagai ringkasan aktivitas API dari waktu ke waktu. 

**Topics**
+ [Prasyarat](#how-to-api-dashboard-prerequisites)
+ [Periksa aktivitas API di dasbor](#how-to-api-dashboard-console)

## Prasyarat
<a name="how-to-api-dashboard-prerequisites"></a>

1. Anda harus memiliki API yang dibuat di API Gateway. Ikuti petunjuk dalam [Kembangkan REST APIs di API Gateway](rest-api-develop.md).

1. Anda harus memiliki API yang diterapkan setidaknya sekali. Ikuti petunjuk dalam [Menerapkan REST APIs di API Gateway](how-to-deploy-api.md).

## Periksa aktivitas API di dasbor
<a name="how-to-api-dashboard-console"></a>

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

1. Pilih API.

1. Di panel navigasi utama, pilih **Dasbor**.

1. Untuk **Panggung**, pilih tahap yang diinginkan.

1. Pilih **Rentang tanggal** untuk menentukan rentang tanggal.

1. ****Segarkan, jika diperlukan, dan lihat metrik individual yang ditampilkan dalam grafik terpisah berjudul **Panggilan API**, Latensi, Latensi **integrasi, **Latensi**, kesalahan 4xx**, dan **kesalahan 5xx**.****
**Tip**  
Untuk memeriksa CloudWatch metrik tingkat metode, pastikan Anda telah mengaktifkan CloudWatch Log pada tingkat metode. Untuk informasi selengkapnya tentang cara mengatur logging tingkat metode, lihat. [Ganti pengaturan tingkat panggung](set-up-stages.md#how-to-method-override)

# Lihat metrik API Gateway di konsol CloudWatch
<a name="metrics_dimensions_view_in_cloud_watch"></a>

Metrik dikelompokkan terlebih dahulu berdasarkan namespace layanan, lalu berdasarkan berbagai kombinasi dimensi dalam setiap namespace. Untuk melihat metrik di tingkat metode untuk API Anda, aktifkan metrik terperinci. Untuk informasi selengkapnya, lihat [Ubah pengaturan panggung](set-up-stages.md#how-to-stage-settings).

**Untuk melihat metrik API Gateway menggunakan konsol CloudWatch**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Jika perlu, ubah Wilayah AWS. Dari bilah navigasi, pilih Wilayah tempat AWS sumber daya Anda berada.

1. Pada panel navigasi, silakan pilih **Metrik**.

1. Di tab **Semua metrik**, pilih **API Gateway**. 

1.  Untuk melihat metrik berdasarkan tahap, pilih panel **Berdasarkan Tahap**. Kemudian, pilih nama Anda APIs dan metrik. 

1. Untuk melihat metrik berdasarkan API tertentu, pilih panel **By Api Name**. Kemudian, pilih nama Anda APIs dan metrik.

**Untuk melihat metrik menggunakan CLI AWS**

1. Gunakan perintah [daftar-metrik berikut untuk membuat daftar metrik](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html):

   ```
   aws cloudwatch list-metrics --namespace "AWS/ApiGateway"
   ```

   Setelah Anda membuat metrik, biarkan hingga 15 menit agar metrik muncul. Untuk melihat statistik metrik lebih cepat, gunakan [get-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/update-domain-name.html)atau [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/update-domain-name.html).

1. Gunakan [get-metrics-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html)perintah berikut untuk melihat rata-rata selama periode waktu menggunakan interval 5 menit:

   ```
   aws cloudwatch get-metric-statistics --namespace AWS/ApiGateway --metric-name Count --start-time 2011-10-03T23:00:00Z --end-time 2017-10-05T23:00:00Z --period 300 --statistics Average
   ```

# Melihat peristiwa log API Gateway di CloudWatch konsol
<a name="view-cloudwatch-log-events-in-cloudwatch-console"></a>

Bagian berikut menjelaskan prasyarat yang diperlukan dan cara melihat peristiwa log API Gateway di konsol. CloudWatch

## Prasyarat
<a name="view-cloudwatch-log-event-prerequisites"></a>

1. Anda harus memiliki API yang dibuat di API Gateway. Ikuti petunjuk dalam [Kembangkan REST APIs di API Gateway](rest-api-develop.md).

1. Anda harus memiliki API yang diterapkan dan dipanggil setidaknya sekali. Ikuti instruksi di [Menerapkan REST APIs di API Gateway](how-to-deploy-api.md) dan[Panggil REST APIs di API Gateway](how-to-call-api.md).

1. Anda harus mengaktifkan CloudWatch Log untuk sebuah panggung. Ikuti petunjuk dalam [Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md).

## Untuk melihat permintaan dan tanggapan API yang dicatat menggunakan CloudWatch konsol
<a name="view-cloudwatch-log-event"></a>

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Jika perlu, ubah Wilayah AWS. Dari bilah navigasi, pilih Wilayah tempat AWS sumber daya Anda berada. Untuk informasi selengkapnya, lihat [Wilayah dan Titik Akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html).

1. Di panel navigasi, pilih **Log**, **Grup log**.

1. Di bawah tabel **Grup Log, pilih grup log** dari nama **API-gateway-Execution-logs\$1** \$1\$1/\$1stage-name\$1. rest-api-id 

1.  Di bawah tabel **Aliran Log**, pilih aliran log. Anda dapat menggunakan stempel waktu untuk membantu menemukan aliran log yang Anda minati. 

1. Pilih **Teks** untuk melihat teks mentah atau pilih **Baris** untuk melihat acara baris demi baris.

**penting**  
 CloudWatch memungkinkan Anda menghapus grup log atau aliran. Jangan menghapus grup atau aliran log API Gateway API secara manual; biarkan API Gateway mengelola sumber daya ini. Menghapus grup log atau aliran secara manual dapat menyebabkan permintaan dan tanggapan API tidak dicatat. Jika itu terjadi, Anda dapat menghapus seluruh grup log untuk API dan menerapkan ulang API. Ini karena API Gateway membuat grup log atau aliran log untuk tahap API pada saat digunakan. 

# Alat pemantauan AWS untuk API Gateway
<a name="monitoring_automated_manual"></a>

AWS menyediakan berbagai alat yang dapat Anda gunakan untuk memantau API Gateway. Anda dapat mengonfigurasi beberapa alat ini untuk melakukan pemantauan untuk Anda secara otomatis, sementara alat lain memerlukan intervensi manual. Sebaiknya Anda mengotomatisasi tugas pemantauan sebanyak mungkin.

## Alat pemantauan otomatis di AWS
<a name="monitoring_automated_tools"></a>

Anda dapat menggunakan alat pemantauan otomatis berikut untuk menonton API Gateway dan melaporkan bila ada sesuatu yang salah:
+ ** CloudWatch Alarm Amazon** — Tonton satu metrik selama periode waktu yang Anda tentukan, dan lakukan satu atau beberapa tindakan berdasarkan nilai metrik relatif terhadap ambang batas tertentu selama beberapa periode waktu. Tindakannya adalah pemberitahuan yang dikirim ke topik Amazon Simple Notification Service (Amazon SNS) atau kebijakan Amazon EC2 Auto Scaling. CloudWatch alarm tidak memanggil tindakan hanya karena mereka berada dalam keadaan tertentu; negara harus telah berubah dan dipertahankan untuk sejumlah periode tertentu. Untuk informasi selengkapnya, lihat [Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md).
+ **Amazon CloudWatch Logs** — Pantau, simpan, dan akses file log Anda dari AWS CloudTrail atau sumber lain. Untuk informasi selengkapnya, lihat [Apa itu CloudWatch Log?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) di *Panduan CloudWatch Pengguna Amazon*.
+ **Amazon EventBridge (sebelumnya disebut CloudWatch Acara)** — Cocokkan peristiwa dan arahkan ke satu atau beberapa fungsi atau aliran target untuk membuat perubahan, menangkap informasi status, dan mengambil tindakan korektif. Untuk informasi selengkapnya, lihat [Apa itu Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) dalam *EventBridge User Guide*.
+ **AWS CloudTrail Pemantauan Log** - Bagikan file log antar akun, pantau file CloudTrail log secara real time dengan mengirimkannya ke CloudWatch Log, menulis aplikasi pemrosesan log di Java, dan validasi bahwa file log Anda tidak berubah setelah pengiriman oleh CloudTrail. Untuk informasi selengkapnya, lihat [Bekerja dengan File CloudTrail Log](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html) di *Panduan AWS CloudTrail Pengguna*. 

## Alat pemantauan manual
<a name="monitoring_manual_tools"></a>

Bagian penting lainnya dari pemantauan API Gateway melibatkan pemantauan secara manual item yang tidak CloudWatch tercakup oleh alarm. API Gateway CloudWatch,, dan dasbor AWS konsol lainnya memberikan at-a-glance tampilan status AWS lingkungan Anda. Kami menyarankan Anda juga memeriksa file log pada eksekusi API.
+ Dasbor API Gateway menampilkan statistik berikut untuk tahap API tertentu selama periode waktu tertentu:
  + **Panggilan API**
  + **Cache Hit**, hanya ketika caching API diaktifkan.
  + **Cache Miss**, hanya ketika caching API diaktifkan.
  + **Latensi**
  + **Latensi Integrasi**
  + **Kesalahan 4XX**
  + **Kesalahan 5XX**
+  CloudWatch Halaman beranda menunjukkan:
  + Alarm dan status saat ini
  + Grafik alarm dan sumber daya
  + Status kesehatan layanan

  Selain itu, Anda dapat menggunakan CloudWatch untuk melakukan hal berikut: 
  + Membuat [dasbor yang disesuaikan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) untuk memantau layanan yang penting bagi Anda
  + Data metrik grafik untuk memecahkan masalah dan mengungkap tren
  + Cari dan telusuri semua metrik AWS sumber daya Anda
  + Membuat dan mengedit alarm untuk menerima notifikasi terkait masalah

## Membuat CloudWatch alarm untuk memantau API Gateway
<a name="creating_alarms"></a>

Anda dapat membuat CloudWatch alarm yang mengirimkan pesan Amazon SNS saat alarm berubah status. Alarm mengawasi satu metrik selama jangka waktu yang Anda tentukan, dan melakukan satu atau beberapa tindakan berdasarkan nilai metrik relatif terhadap ambang batas tertentu selama jangka waktu tertentu. Tindakan ini adalah notifikasi yang dikirim ke topik Amazon SNS atau kebijakan Penskalaan Otomatis. Alarm memanggil tindakan untuk perubahan status berkelanjutan saja. CloudWatch alarm tidak memanggil tindakan hanya karena mereka berada dalam keadaan tertentu; negara harus telah berubah dan dipertahankan untuk sejumlah periode tertentu.

# Siapkan CloudWatch logging untuk REST APIs di API Gateway
<a name="set-up-logging"></a>

 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, lihat[Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md).

## CloudWatch format log untuk API Gateway
<a name="apigateway-cloudwatch-log-formats"></a>

 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](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) 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 [`$context`](api-gateway-variables-for-access-logging.md)variabel, 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 [Variabel untuk pencatatan akses untuk API Gateway](api-gateway-variables-for-access-logging.md).

Pilih format log yang juga diadopsi oleh backend analitik Anda, seperti [Common Log Format](https://httpd.apache.org/docs/current/logs.html#common) (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](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#destinationArn) di atas panggung.](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) Anda dapat memperoleh grup log ARN di konsol. CloudWatch Untuk menentukan format log akses, atur format yang dipilih pada properti [accessLogSetting/format](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#format) di [panggung](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html). 

Contoh beberapa format log akses yang umum digunakan ditampilkan di konsol API Gateway dan dicantumkan sebagai berikut.
+ `CLF`([Format Log Umum](https://httpd.apache.org/docs/current/logs.html#common)):

  ```
  $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
<a name="set-up-access-logging-permissions"></a>

Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. [Amazon APIGateway PushToCloudWatchLogs](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAPIGatewayPushToCloudWatchLogs.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html).

[https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html#cloudWatchRoleArn](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html#cloudWatchRoleArn) Anda harus mengatur properti [cloudWatchRoleArn](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html#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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) di *Panduan Pengguna IAM*.

## Siapkan pencatatan CloudWatch API menggunakan konsol API Gateway
<a name="set-up-access-logging-using-console"></a>

Untuk menyiapkan pencatatan CloudWatch API, Anda harus menerapkan API ke sebuah panggung. Anda juga harus mengonfigurasi ARN [peran CloudWatch Log yang sesuai](#set-up-access-logging-permissions) untuk akun Anda. 

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

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

1. 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. 

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

   1.  Pilih API yang ada, lalu pilih panggung.

   1.  Buat API, lalu terapkan ke panggung.

1. Di panel navigasi utama, pilih **Tahapan**.

1.  Di bagian **Log dan penelusuran**, pilih **Edit**.

1. 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.

   1. (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.

   1. (Opsional) Pilih **Metrik terperinci** untuk mengaktifkan CloudWatch metrik terperinci.

   Untuk informasi selengkapnya tentang CloudWatch metrik, lihat[Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md).

1. Untuk mengaktifkan pencatatan akses:

   1. Aktifkan **Pencatatan akses khusus**.

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

   1. Untuk **Format Log**, masukkan format log. **Anda dapat memilih **CLF**, **JSON**, **XHTML**, atau CSV.** Untuk mempelajari lebih lanjut tentang contoh format log, lihat[CloudWatch format log untuk API Gateway](#apigateway-cloudwatch-log-formats).

1. 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 CloudFormation
<a name="set-up-access-logging-using-cloudformation"></a>

Gunakan contoh 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#aws-resource-apigateway-account--examples) 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
```

# Log panggilan REST API ke Amazon Data Firehose di API Gateway
<a name="apigateway-logging-to-kinesis"></a>

Untuk membantu masalah debug yang terkait dengan akses klien ke API Anda, Anda dapat mencatat panggilan API ke Amazon Data Firehose. Untuk informasi selengkapnya tentang Firehose, lihat [Apa itu Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)? .

Untuk pencatatan akses, Anda hanya dapat mengaktifkan CloudWatch atau Firehose—Anda tidak dapat mengaktifkan keduanya. Namun, Anda dapat mengaktifkan CloudWatch pencatatan eksekusi dan Firehose untuk pencatatan akses.

**Topics**
+ [Format log Firehose untuk API Gateway](#apigateway-kinesis-log-formats)
+ [Izin untuk pencatatan Firehose](#set-up-kinesis-access-logging-permissions)
+ [Mengatur pencatatan akses Firehose dengan menggunakan konsol API Gateway](#set-up-kinesis-access-logging-using-console)

## Format log Firehose untuk API Gateway
<a name="apigateway-kinesis-log-formats"></a>

[Firehose logging menggunakan format yang sama dengan logging. CloudWatch ](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)

## Izin untuk pencatatan Firehose
<a name="set-up-kinesis-access-logging-permissions"></a>

Saat pencatatan akses Firehose diaktifkan di panggung, API Gateway akan membuat peran terkait layanan di akun Anda jika peran tersebut belum ada. Peran tersebut dinamai `AWSServiceRoleForAPIGateway` dan memiliki kebijakan `APIGatewayServiceRolePolicy` terkelola yang melekat padanya. Untuk informasi selengkapnya tentang peran terkait layanan, lihat [Menggunakan Peran Tertaut Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html).

**catatan**  
Nama aliran Firehose Anda harus. `amazon-apigateway-{your-stream-name}`

## Mengatur pencatatan akses Firehose dengan menggunakan konsol API Gateway
<a name="set-up-kinesis-access-logging-using-console"></a>

Untuk menyiapkan pencatatan API, Anda harus menerapkan API ke sebuah panggung. Anda juga harus membuat aliran Firehose. 

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

1.  Lakukan salah satu tindakan berikut:

   1.  Pilih API yang ada, lalu pilih panggung.

   1.  Buat API dan terapkan ke panggung.

1. Di panel navigasi utama, pilih **Tahapan**.

1.  Di bagian **Log dan penelusuran**, pilih **Edit**.

1. Untuk mengaktifkan pencatatan akses ke aliran Firehose:

   1. Aktifkan **Pencatatan akses khusus**.

   1. Untuk **akses log tujuan ARN**, masukkan ARN dari aliran Firehose. Format ARN adalah. `arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}`
**catatan**  
Nama aliran Firehose Anda harus. `amazon-apigateway-{your-stream-name}`

   1. Untuk **format Log**, masukkan format log. **Anda dapat memilih **CLF**, **JSON**, **XHTML**, atau CSV.** Untuk mempelajari lebih lanjut tentang contoh format log, lihat[CloudWatch format log untuk API Gateway](set-up-logging.md#apigateway-cloudwatch-log-formats).

1. Pilih **Simpan perubahan**.

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

# Variabel untuk pencatatan akses untuk API Gateway
<a name="api-gateway-variables-for-access-logging"></a>

 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 rincian akses, Anda dapat menggunakan variabel case-sensitive `$context` berikut.

Untuk daftar variabel referensi untuk transformasi data, lihat[Variabel untuk transformasi data untuk API Gateway](api-gateway-mapping-template-reference.md).


| Parameter | Deskripsi | 
| --- | --- | 
| \$1context.accountId |  ID AWS akun pemilik API.  | 
| \$1context.apiId |  API Gateway identifier ditetapkan ke API Anda.  | 
| \$1context.authorize.error | Pesan kesalahan otorisasi. | 
| \$1context.authorize.latency | Latensi otorisasi di ms. | 
| \$1context.authorize.status | Kode status dikembalikan dari upaya otorisasi. | 
| \$1context.authorizer.claims.property |  Properti klaim yang dikembalikan dari kumpulan pengguna Amazon Cognito setelah pemanggil metode berhasil diautentikasi. Untuk informasi selengkapnya, lihat [Kontrol akses ke REST APIs menggunakan kumpulan pengguna Amazon Cognito sebagai otorisasi](apigateway-integrate-with-cognito.md).  Memanggil `$context.authorizer.claims` mengembalikan null.   | 
| \$1context.authorizer.error | Pesan kesalahan dikembalikan dari otorisasi. | 
| \$1context.authorizer.integrationLatency | Latensi integrasi otorisasi di ms. | 
| \$1context.authorizer.integrationStatus | Kode status dikembalikan dari otorisasi Lambda. | 
| \$1context.authorizer.latency | Latensi otorisasi di ms. | 
| \$1context.authorizer.principalId |  Identifikasi pengguna utama yang terkait dengan token yang dikirim oleh klien dan dikembalikan dari otorisasi API Gateway Lambda (sebelumnya dikenal sebagai otorisasi khusus). Untuk informasi selengkapnya, lihat [Gunakan otorisasi API Gateway Lambda](apigateway-use-lambda-authorizer.md).  | 
| \$1context.authorizer.property |  Nilai stringifikasi dari pasangan nilai kunci `context` peta yang ditentukan dikembalikan dari fungsi otorisasi API Gateway Lambda. Misalnya, jika otorisasi mengembalikan `context` peta berikut:  <pre>"context" : {<br />  "key": "value",<br />  "numKey": 1,<br />  "boolKey": true<br />}</pre> Memanggil `$context.authorizer.key` mengembalikan `"value"` string, memanggil `$context.authorizer.numKey` mengembalikan `"1"` string, dan memanggil `$context.authorizer.boolKey` mengembalikan `"true"` string. Sebab*property*, satu-satunya karakter khusus yang didukung adalah `(_)` karakter garis bawah. Untuk informasi selengkapnya, lihat [Gunakan otorisasi API Gateway Lambda](apigateway-use-lambda-authorizer.md).  | 
| \$1context.authorizer.requestId | ID permintaan AWS titik akhir. | 
| \$1context.authorizer.status | Kode status dikembalikan dari otorisasi. | 
| \$1context.authenticate.error | Pesan kesalahan dikembalikan dari upaya otentikasi. | 
| \$1context.authenticate.latency | Latensi otentikasi di ms. | 
| \$1context.authenticate.status | Kode status dikembalikan dari upaya otentikasi. | 
| \$1context.awsEndpointRequestId |  ID permintaan AWS titik akhir.  | 
| \$1context.cipherSuite |  Cipher, dalam format IANA, yang dinegosiasikan selama jabat tangan TLS antara klien dan API Gateway.  | 
| \$1context.customDomain.basePathMatched |  Jalur untuk pemetaan API yang cocok dengan permintaan masuk. Berlaku ketika klien menggunakan nama domain khusus untuk mengakses API. Misalnya jika klien mengirim permintaan ke`https://api.example.com/v1/orders/1234`, dan permintaan tersebut cocok dengan pemetaan API dengan jalur`v1/orders`, nilainya adalah`v1/orders`. Untuk mempelajari selengkapnya, lihat [Gunakan pemetaan API untuk menghubungkan tahapan API ke nama domain khusus untuk REST APIs](rest-api-mappings.md).  | 
| \$1context.customDomain.routingRuleIdMatched | Aturan routing yang cocok dengan permintaan masuk. Berlaku ketika klien menggunakan nama domain khusus untuk mengakses API. Untuk mempelajari selengkapnya, lihat [Aturan perutean untuk menghubungkan tahapan API ke nama domain khusus untuk REST APIs](rest-api-routing-rules.md). | 
| \$1context.deploymentId | ID penerapan API. | 
| \$1context.domainName |  Nama domain lengkap yang digunakan untuk memanggil API. Ini harus sama dengan `Host` header yang masuk.  | 
| \$1context.domainPrefix |  Label pertama dari`$context.domainName`.  | 
| \$1context.endpointType | Jenis titik akhir API. | 
| \$1context.error.message |  String yang berisi pesan kesalahan API Gateway. Variabel ini hanya dapat digunakan untuk substitusi variabel sederhana dalam template [GatewayResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html)pemetaan tubuh, yang tidak diproses oleh mesin Velocity Template Language, dan dalam logging akses. Untuk informasi selengkapnya, lihat [Pantau eksekusi WebSocket API dengan CloudWatch metrik](apigateway-websocket-api-logging.md) dan [Menyiapkan respons gateway untuk menyesuaikan respons kesalahan](api-gateway-gatewayResponse-definition.md#customize-gateway-responses).  | 
| \$1context.error.messageString | Nilai yang dikutip dari\$1context.error.message, yaitu"\$1context.error.message". | 
| \$1context.error.responseType |  Sebuah [jenis [GatewayResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html)](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html#responseType). Variabel ini hanya dapat digunakan untuk substitusi variabel sederhana dalam template [GatewayResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html)pemetaan tubuh, yang tidak diproses oleh mesin Velocity Template Language, dan dalam logging akses. Untuk informasi selengkapnya, lihat [Pantau eksekusi WebSocket API dengan CloudWatch metrik](apigateway-websocket-api-logging.md) dan [Menyiapkan respons gateway untuk menyesuaikan respons kesalahan](api-gateway-gatewayResponse-definition.md#customize-gateway-responses).  | 
| \$1context.error.validationErrorString |  Sebuah string yang berisi pesan kesalahan validasi rinci.  | 
| \$1context.extendedRequestId | ID tambahan yang dibuat dan ditetapkan API Gateway ke permintaan API. ID permintaan yang diperluas berisi informasi yang berguna untuk debugging dan pemecahan masalah. | 
| \$1context.httpMethod |  Metode HTTP yang digunakan. Nilai yang valid meliputi: `DELETE``GET`,,`HEAD`,`OPTIONS`,`PATCH`,`POST`, dan`PUT`.  | 
| \$1context.identity.accountId |  ID AWS akun yang terkait dengan permintaan.  | 
| \$1context.identity.apiKey |  Untuk metode API yang memerlukan kunci API, variabel ini adalah kunci API yang terkait dengan permintaan metode. Untuk metode yang tidak memerlukan kunci API, variabel ini adalah null. Untuk informasi selengkapnya, lihat [Paket penggunaan dan kunci API untuk REST APIs di API Gateway](api-gateway-api-usage-plans.md).  | 
| \$1context.identity.apiKeyId | ID kunci API yang terkait dengan permintaan API yang memerlukan kunci API. | 
| \$1context.identity.caller |  Pengenal utama penelepon yang menandatangani permintaan. Didukung untuk sumber daya yang menggunakan otorisasi IAM.  | 
| \$1context.identity.cognitoAuthenticationProvider |  Daftar dipisahkan koma dari semua penyedia otentikasi Amazon Cognito yang digunakan oleh penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredensyal Amazon Cognito.  Misalnya, untuk identitas dari kumpulan pengguna Amazon Cognito, `cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim` *Untuk informasi tentang penyedia autentikasi Amazon Cognito yang tersedia, lihat [Menggunakan Identitas Federasi di Panduan Pengembang](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) Amazon Cognito.* | 
| \$1context.identity.cognitoAuthenticationType |  Jenis otentikasi Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredensyal Amazon Cognito. Nilai yang mungkin termasuk `authenticated` untuk identitas yang diautentikasi dan `unauthenticated` untuk identitas yang tidak diautentikasi. | 
| \$1context.identity.cognitoIdentityId |  ID identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredensyal Amazon Cognito.  | 
| \$1context.identity.cognitoIdentityPoolId |  ID kumpulan identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredensyal Amazon Cognito.  | 
| \$1context.identity.principalOrgId |  [ID AWS organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html).  | 
| \$1context.identity.sourceIp |  Alamat IP sumber dari koneksi TCP langsung membuat permintaan ke titik akhir API Gateway.  | 
| \$1context.identity.clientCert.clientCertPem |  Sertifikat klien yang dikodekan PEM yang disajikan klien selama otentikasi TLS timbal balik. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
| \$1context.identity.clientCert.subjectDN |  Nama yang dibedakan dari subjek sertifikat yang disajikan klien. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
| \$1context.identity.clientCert.issuerDN |  Nama terhormat dari penerbit sertifikat yang disajikan klien. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
| \$1context.identity.clientCert.serialNumber |  Nomor seri sertifikat. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
| \$1context.identity.clientCert.validity.notBefore |  Tanggal sebelum sertifikat tidak valid. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
| \$1context.identity.clientCert.validity.notAfter |  Tanggal setelah sertifikat tidak valid. Hadir saat klien mengakses API dengan menggunakan nama domain khusus yang mengaktifkan TLS timbal balik. Hadir hanya di log akses jika otentikasi TLS timbal balik gagal.  | 
|  \$1context.identity.vpcId | ID VPC VPC membuat permintaan ke titik akhir API Gateway. | 
|  \$1context.identity.vpceId |  ID titik akhir VPC dari titik akhir VPC membuat permintaan ke titik akhir API Gateway. Hadir hanya ketika Anda memiliki API pribadi.  | 
| \$1context.identity.user |  Pengidentifikasi utama pengguna yang akan diotorisasi terhadap akses sumber daya. Didukung untuk sumber daya yang menggunakan otorisasi IAM.  | 
| \$1context.identity.userAgent |  [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent)Header pemanggil API.  | 
| \$1context.identity.userArn |  Nama Sumber Daya Amazon (ARN) dari pengguna efektif yang diidentifikasi setelah otentikasi. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html).  | 
| \$1context.integration.error | Pesan kesalahan dikembalikan dari integrasi. | 
| \$1context.integration.integrationStatus | Untuk integrasi proxy Lambda, kode status dikembalikan dari AWS Lambda, bukan dari kode fungsi Lambda backend. | 
| \$1context.integration.latency | Latensi integrasi dalam ms. Setara dengan\$1context.integrationLatency. | 
| \$1context.integration.requestId | ID permintaan AWS titik akhir. Setara dengan\$1context.awsEndpointRequestId. | 
| \$1context.integration.responseTransferMode | Mode transfer respons integrasi Anda. Ini bisa salah satu BUFFERED atauSTREAMED. | 
| \$1context.integration.status | Kode status dikembalikan dari integrasi. Untuk integrasi proxy Lambda, ini adalah kode status yang dikembalikan oleh kode fungsi Lambda Anda.  | 
| \$1context.integration.timeToAllHeaders | Waktu antara saat API Gateway menetapkan koneksi integrasi saat menerima semua header respons integrasi dari klien.  | 
| \$1context.integration.timeToFirstContent | Waktu antara saat API Gateway menetapkan koneksi integrasi saat menerima byte konten pertama. | 
| \$1context.integrationLatency | Latensi integrasi dalam ms. | 
| \$1context.integrationStatus | Untuk integrasi proxy Lambda, parameter ini mewakili kode status yang dikembalikan dari AWS Lambda, bukan dari kode fungsi Lambda backend. | 
| \$1context.isCanaryRequest |  Kembali `true` jika permintaan diarahkan ke kenari dan `false` jika permintaan tidak diarahkan ke kenari. Hadir hanya ketika Anda mengaktifkan kenari. | 
| \$1context.path | Jalur permintaan. Misalnya, untuk URL permintaan non-proxy darihttps://\$1rest-api-id\$1.execute-api.\$1region\$1.amazonaws.com/\$1stage\$1/root/child, \$1context.path nilainya adalah/\$1stage\$1/root/child.  | 
| \$1context.protocol | Protokol permintaan, misalnya,HTTP/1.1.  API Gateway APIs dapat menerima permintaan HTTP/2, tetapi API Gateway mengirimkan permintaan ke integrasi backend menggunakan HTTP/1.1. Akibatnya, protokol permintaan dicatat sebagai HTTP/1.1 bahkan jika klien mengirim permintaan yang menggunakan HTTP/2.   | 
| \$1context.requestId |  ID untuk permintaan. Klien dapat mengganti ID permintaan ini. Gunakan `$context.extendedRequestId` untuk ID permintaan unik yang dihasilkan API Gateway.  | 
| \$1context.requestOverride.header.header\$1name |  Header permintaan menimpa. Jika parameter ini didefinisikan, ini berisi header yang akan digunakan alih-alih **Header HTTP** yang didefinisikan di panel **Permintaan Integrasi**. Untuk informasi selengkapnya, lihat [Ganti parameter permintaan dan respons API Anda serta kode status untuk REST APIs di API Gateway](apigateway-override-request-response-parameters.md).  | 
| \$1context.requestOverride.path.path\$1name |  Jalur permintaan menimpa. Jika parameter ini ditentukan, parameter ini berisi jalur permintaan yang akan digunakan, bukan **Parameter Jalur URL** yang ditentukan di panel **Permintaan Integrasi**. Untuk informasi selengkapnya, lihat [Ganti parameter permintaan dan respons API Anda serta kode status untuk REST APIs di API Gateway](apigateway-override-request-response-parameters.md).  | 
| \$1context.requestOverride.querystring.querystring\$1name |  Permintaan query string override. Jika parameter ini didefinisikan, ini berisi string permintaan permintaan yang akan digunakan alih-alih **Parameter String Kueri URL** yang didefinisikan di panel **Permintaan Integrasi**. Untuk informasi selengkapnya, lihat [Ganti parameter permintaan dan respons API Anda serta kode status untuk REST APIs di API Gateway](apigateway-override-request-response-parameters.md).  | 
| \$1context.responseLatency | Latensi respons dalam ms. | 
| \$1context.responseLength | Panjang payload respon dalam byte. | 
| \$1context.responseOverride.header.header\$1name | Header respon menimpa. Jika parameter ini didefinisikan, ini berisi header yang akan dikembalikan, bukan header Response yang didefinisikan sebagai pemetaan Default di panel Integration Response. Untuk informasi selengkapnya, lihat [Ganti parameter permintaan dan respons API Anda serta kode status untuk REST APIs di API Gateway](apigateway-override-request-response-parameters.md). | 
| \$1context.responseOverride.status | Kode status respons menimpa. Jika parameter ini didefinisikan, ini berisi kode status yang akan dikembalikan, bukan status respons Metode yang didefinisikan sebagai pemetaan Default di panel Respons Integrasi. Untuk informasi selengkapnya, lihat [Ganti parameter permintaan dan respons API Anda serta kode status untuk REST APIs di API Gateway](apigateway-override-request-response-parameters.md). | 
| \$1context.requestTime | Waktu permintaan yang diformat [CLF](https://httpd.apache.org/docs/current/logs.html#common) (). dd/MMM/yyyy:HH:mm:ss \$1-hhmm | 
| \$1context.requestTimeEpoch | Waktu permintaan yang diformat [Epoch](https://en.wikipedia.org/wiki/Unix_time), dalam milidetik. | 
| \$1context.resourceId |  Pengidentifikasi yang ditetapkan API Gateway ke sumber daya Anda.  | 
| \$1context.resourcePath |  Jalan menuju sumber daya Anda. Misalnya, untuk URI permintaan non-proxy dari`https://{rest-api-id}.execute-api.{region}.amazonaws.com/{stage}/root/child`, `$context.resourcePath` Nilainya adalah`/root/child`. Untuk informasi selengkapnya, lihat [Tutorial: Membuat REST API dengan integrasi non-proxy HTTP](api-gateway-create-api-step-by-step.md).   | 
| \$1context.stage |  Tahap penerapan permintaan API (misalnya, `Beta` atau`Prod`).  | 
| \$1context.status | Status respons metode. | 
| \$1context.tlsVersion |  Versi TLS yang dinegosiasikan selama jabat tangan TLS antara klien dan API Gateway. | 
| \$1context.waf.error | Pesan kesalahan dikembalikan dari AWS WAF. | 
| \$1context.waf.latency |  AWS WAF Latensi dalam ms. | 
| \$1context.waf.status | Kode status dikembalikan dari AWS WAF. | 
| \$1context.xrayTraceId |  ID jejak untuk jejak X-Ray. Untuk informasi selengkapnya, lihat [Siapkan AWS X-Ray dengan API Gateway REST APIs](apigateway-enabling-xray.md).  | 
| \$1context.wafResponseCode |  Tanggapan yang diterima dari [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html): `WAF_ALLOW` atau`WAF_BLOCK`. Tidak akan diatur jika tahap tidak terkait dengan ACL web. Untuk informasi selengkapnya, lihat [Gunakan AWS WAF untuk melindungi REST Anda APIs di API Gateway](apigateway-control-access-aws-waf.md).  | 
| \$1context.webaclArn |  ARN lengkap dari ACL web yang digunakan untuk memutuskan apakah akan mengizinkan atau memblokir permintaan. Tidak akan diatur jika tahap tidak terkait dengan ACL web. Lihat informasi yang lebih lengkap di [Gunakan AWS WAF untuk melindungi REST Anda APIs di API Gateway](apigateway-control-access-aws-waf.md).  | 

# Lacak permintaan pengguna ke REST APIs menggunakan X-Ray di API Gateway
<a name="apigateway-xray"></a>

Anda dapat menggunakan [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html)untuk melacak dan menganalisis permintaan pengguna saat mereka melakukan perjalanan melalui Amazon API Gateway REST Anda APIs ke layanan yang mendasarinya. API Gateway mendukung penelusuran X-Ray untuk semua jenis titik akhir API API Gateway REST API: Regional, dioptimalkan tepi, dan pribadi. Anda dapat menggunakan X-Ray dengan Amazon API Gateway di semua AWS Wilayah di mana X-Ray tersedia.

Karena X-Ray memberi Anda end-to-end tampilan seluruh permintaan, Anda dapat menganalisis latensi di layanan backend Anda APIs dan mereka. Anda dapat menggunakan peta layanan X-Ray untuk melihat latensi seluruh permintaan dan layanan hilir yang terintegrasi dengan X-Ray. Anda juga dapat mengonfigurasi aturan pengambilan sampel untuk memberi tahu X-Ray permintaan mana yang akan direkam dan berapa laju pengambilan sampel, sesuai dengan kriteria yang Anda tentukan. 

Jika Anda memanggil API Gateway API dari layanan yang sudah dilacak, API Gateway meneruskan jejak, bahkan jika penelusuran X-Ray tidak diaktifkan di API.

Anda dapat mengaktifkan X-Ray untuk tahap API dengan menggunakan konsol API Gateway, atau dengan menggunakan API Gateway API atau CLI.

**Topics**
+ [Siapkan AWS X-Ray dengan API Gateway REST APIs](apigateway-enabling-xray.md)
+ [Menggunakan peta AWS X-Ray layanan dan melacak tampilan dengan API Gateway](apigateway-using-xray-maps.md)
+ [Konfigurasikan aturan AWS X-Ray pengambilan sampel untuk API Gateway APIs](apigateway-configuring-xray-sampling-rules.md)
+ [AWS X-Ray jejak untuk Amazon API Gateway APIs](apigateway-understanding-xray-traces.md)

# Siapkan AWS X-Ray dengan API Gateway REST APIs
<a name="apigateway-enabling-xray"></a>

Di bagian ini Anda dapat menemukan informasi terperinci tentang cara mengatur [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html)dengan API Gateway REST APIs.

**Topics**
+ [Mode penelusuran X-Ray untuk API Gateway](#apigateway-tracing-modes)
+ [Izin untuk penelusuran X-Ray](#set-up-xray-tracing-permissions)
+ [Mengaktifkan penelusuran X-Ray di konsol API Gateway](#apigateway-xray-console-setup)
+ [Mengaktifkan AWS X-Ray penelusuran menggunakan API Gateway CLI](#apigateway-xray-cli-setup)

## Mode penelusuran X-Ray untuk API Gateway
<a name="apigateway-tracing-modes"></a>

Jalur permintaan melalui aplikasi Anda dilacak dengan ID jejak. Jejak mengumpulkan semua segmen yang dihasilkan oleh satu permintaan, biasanya permintaan HTTP `GET` atau `POST` permintaan.

Ada dua mode penelusuran untuk API Gateway API:
+ **Pasif**: Ini adalah pengaturan default jika Anda belum mengaktifkan penelusuran X-Ray pada tahap API. Pendekatan ini berarti API Gateway API hanya dilacak jika X-Ray telah diaktifkan pada layanan upstream.
+ **Aktif**: Saat tahap API Gateway API memiliki pengaturan ini, API Gateway secara otomatis mengambil sampel permintaan pemanggilan API, berdasarkan algoritma pengambilan sampel yang ditentukan oleh X-Ray.

  Saat penelusuran aktif diaktifkan di panggung, API Gateway akan membuat peran terkait layanan di akun Anda, jika peran tersebut belum ada. Peran tersebut diberi nama `AWSServiceRoleForAPIGateway` dan akan memiliki kebijakan `APIGatewayServiceRolePolicy` terkelola yang melekat padanya. Untuk informasi selengkapnya tentang peran terkait layanan, lihat [Menggunakan Peran Tertaut Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html).
**catatan**  
X-Ray menerapkan algoritma sampling untuk memastikan bahwa penelusuran efisien, sambil tetap memberikan sampel representatif dari permintaan yang diterima API Anda. Algoritma pengambilan sampel default adalah 1 permintaan per detik, dengan 5 persen permintaan sampel melewati batas itu.

Anda dapat mengubah mode penelusuran untuk API Anda dengan menggunakan konsol manajemen API Gateway, API Gateway CLI, atau AWS SDK.

## Izin untuk penelusuran X-Ray
<a name="set-up-xray-tracing-permissions"></a>

Saat Anda mengaktifkan penelusuran X-Ray di panggung, API Gateway akan membuat peran terkait layanan di akun Anda, jika peran tersebut belum ada. Peran tersebut diberi nama `AWSServiceRoleForAPIGateway` dan akan memiliki kebijakan `APIGatewayServiceRolePolicy` terkelola yang melekat padanya. Untuk informasi selengkapnya tentang peran terkait layanan, lihat [Menggunakan Peran Tertaut Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html).

## Mengaktifkan penelusuran X-Ray di konsol API Gateway
<a name="apigateway-xray-console-setup"></a>

Anda dapat menggunakan konsol Amazon API Gateway untuk mengaktifkan penelusuran aktif pada tahap API.

Langkah-langkah ini mengasumsikan bahwa Anda telah menerapkan API ke suatu panggung.

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

1. Pilih API Anda, lalu di panel navigasi utama, pilih **Tahapan**.

1. Di panel **Tahapan**, pilih panggung.

1. Di bagian **Log dan penelusuran**, pilih **Edit**.

1. Untuk mengaktifkan penelusuran X-Ray aktif, pilih penelusuran **X-Ray untuk mengaktifkan penelusuran** X-Ray.

1. Pilih **Simpan perubahan**.

Setelah mengaktifkan X-Ray untuk tahap API, Anda dapat menggunakan konsol manajemen X-Ray untuk melihat jejak dan peta layanan.

## Mengaktifkan AWS X-Ray penelusuran menggunakan API Gateway CLI
<a name="apigateway-xray-cli-setup"></a>

Perintah [create-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) berikut membuat tahapan dengan penelusuran X-Ray aktif:

```
aws apigateway create-stage \
    --rest-api-id rest-api-id \
    --stage-name stage-name \
    --deployment-id deployment-id \
    --region region \
    --tracing-enabled=true
```

Outputnya akan terlihat seperti berikut:

```
{
    "tracingEnabled": true, 
    "stageName": stage-name, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": deployment-id, 
    "lastUpdatedDate": 1533849811, 
    "createdDate": 1533849811, 
    "methodSettings": {}
}
```

Perintah [create-stage berikut membuat panggung tanpa penelusuran](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) X-Ray aktif:

```
aws apigateway create-stage \
    --rest-api-id rest-api-id \
    --stage-name stage-name \
    --deployment-id deployment-id \
    --region region \
    --tracing-enabled=false
```

Outputnya akan terlihat seperti berikut:

```
{
    "tracingEnabled": false, 
    "stageName": stage-name, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": deployment-id, 
    "lastUpdatedDate": 1533849811, 
    "createdDate": 1533849811, 
    "methodSettings": {}
}
```

[Tahap pembaruan berikut mengaktifkan penelusuran](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) X-Ray aktif untuk API yang diterapkan: 

```
aws apigateway update-stage \
    --rest-api-id rest-api-id \
    --stage-name stage-name \
    --patch-operations op=replace,path=/tracingEnabled,value=true
```

[Tahap pembaruan berikut menonaktifkan penelusuran](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) X-Ray aktif untuk API yang diterapkan: 

```
aws apigateway update-stage \
    --rest-api-id rest-api-id \
    --stage-name stage-name \
    --region region \
    --patch-operations op=replace,path=/tracingEnabled,value=false
```

Outputnya akan terlihat seperti berikut:

```
{
    "tracingEnabled": false, 
    "stageName": stage-name, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": deployment-id, 
    "lastUpdatedDate": 1533850033, 
    "createdDate": 1533849811, 
    "methodSettings": {}
}
```

Setelah Anda mengaktifkan X-Ray untuk tahap API Anda, gunakan X-Ray CLI untuk mengambil informasi jejak. Untuk informasi selengkapnya, lihat [Menggunakan X-Ray API dengan AWS CLI](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-tutorial).

# Menggunakan peta AWS X-Ray layanan dan melacak tampilan dengan API Gateway
<a name="apigateway-using-xray-maps"></a>

Di bagian ini Anda dapat menemukan informasi terperinci tentang cara menggunakan peta [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html)layanan dan melacak tampilan dengan API Gateway.

**Topics**
+ [Contoh peta layanan X-Ray](#apigateway-using-xray-maps-active)
+ [Contoh tampilan jejak X-Ray](#apigateway-using-xray-trace-view-active)

## Contoh peta layanan X-Ray
<a name="apigateway-using-xray-maps-active"></a>

AWS X-Ray peta layanan menampilkan informasi tentang API Anda dan semua layanan hilirnya. Saat X-Ray diaktifkan untuk tahap API di API Gateway, Anda akan melihat node di peta layanan yang berisi informasi tentang keseluruhan waktu yang dihabiskan dalam layanan API Gateway. Anda bisa mendapatkan informasi terperinci tentang status respons dan histogram waktu respons API untuk jangka waktu yang dipilih. Untuk APIs mengintegrasikan dengan AWS layanan seperti AWS Lambda dan Amazon DynamoDB, Anda akan melihat lebih banyak node yang menyediakan metrik kinerja yang terkait dengan layanan tersebut. Akan ada peta layanan untuk setiap tahap API.

Contoh berikut menunjukkan peta layanan untuk `test` tahap API yang disebut`xray`. API ini memiliki dua integrasi Lambda. Node mewakili layanan API Gateway dan dua fungsi Lambda.

Untuk penjelasan rinci tentang struktur peta layanan, lihat [Menggunakan peta jejak X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-servicemap).

![\[Contoh peta layanan dari tahap API Gateway API\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/apigateway-xray-servicemap-2.png)


Dari peta layanan, Anda dapat memperbesar untuk melihat tampilan jejak tahap API Anda. Penelusuran akan menampilkan informasi mendalam mengenai API Anda, yang direpresentasikan sebagai segmen dan subsegmen. Misalnya, jejak untuk peta layanan yang ditunjukkan di atas akan mencakup segmen untuk layanan Lambda dan fungsi Lambda. Untuk informasi lebih lanjut, lihat [AWS Lambda dan AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-lambda.html).

Jika Anda memilih node atau edge pada peta layanan X-Ray, konsol X-Ray menunjukkan histogram distribusi latensi. Anda dapat menggunakan histogram latensi untuk melihat berapa lama waktu yang dibutuhkan layanan untuk menyelesaikan permintaannya. Berikut ini adalah histogram tahap API Gateway yang disebutkan `xray/test` di peta layanan sebelumnya. Untuk penjelasan rinci tentang histogram distribusi latensi, lihat [Gunakan](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-histograms) Histogram Latensi.

![\[Histogram X-Ray dari tahap API Gateway API\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/apigateway-xray-histogram-1.png)


## Contoh tampilan jejak X-Ray
<a name="apigateway-using-xray-trace-view-active"></a>

Diagram berikut menunjukkan tampilan jejak yang dihasilkan untuk contoh API yang dijelaskan di atas, dengan fungsi backend Lambda. Permintaan metode API yang berhasil ditampilkan dengan kode respons 200.

Untuk penjelasan rinci tentang tampilan jejak, lihat [Melihat jejak dan detail jejak](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-traces).

![\[API Gateway dengan penelusuran aktif diaktifkan\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/apigateway-xray-traceview-1.png)


# Konfigurasikan aturan AWS X-Ray pengambilan sampel untuk API Gateway APIs
<a name="apigateway-configuring-xray-sampling-rules"></a>

Anda dapat menggunakan AWS X-Ray konsol atau SDK untuk mengonfigurasi aturan pengambilan sampel untuk Amazon API Gateway API. Aturan sampling menentukan permintaan X-Ray mana yang harus direkam untuk API Anda. Dengan menyesuaikan aturan pengambilan sampel, Anda dapat mengontrol jumlah data yang Anda catat, dan mengubah perilaku pengambilan sampel dengan cepat tanpa mengubah atau men-deploy ulang kode Anda.

Sebelum Anda menentukan aturan pengambilan sampel X-Ray, baca topik berikut di Panduan Pengembang X-Ray:
+ [Konfigurasikan aturan pengambilan sampel](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-sampling)
+ [Menggunakan Aturan Sampling dengan X-Ray API](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-sampling)

**Topics**
+ [Nilai opsi aturan pengambilan sampel X-Ray untuk API Gateway APIs](#apigateway-xray-sampling-rule-options)
+ [Contoh aturan pengambilan sampel X-Ray](#apigateway-xray-sampling-rules-examples)

## Nilai opsi aturan pengambilan sampel X-Ray untuk API Gateway APIs
<a name="apigateway-xray-sampling-rule-options"></a>

Opsi pengambilan sampel X-Ray berikut relevan untuk API Gateway. Nilai string dapat menggunakan wildcard untuk mencocokkan satu karakter (?) atau nol atau lebih karakter (\$1). Untuk detail selengkapnya, termasuk penjelasan rinci tentang cara pengaturan **Reservoir** dan **Rate** digunakan, [Konfigurasikan aturan pengambilan sampel](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-sampling).
+ **Rule name** (string) — Sebuah nama unik untuk aturan.
+ **Prioritas** (integer antara 1 dan 9999) — Prioritas aturan sampling. Layanan mengevaluasi aturan dalam urutan prioritas naik, dan membuat keputusan pengambilan sampel dengan aturan pertama yang cocok.
+ **Reservoir** (bilangan bulat nonnegatif) — Sejumlah permintaan pencocokan yang tetap ke instrumen per detik, sebelum menerapkan tarif tetap. Reservoir tidak digunakan secara langsung oleh layanan, tetapi berlaku untuk semua layanan yang menggunakan aturan secara kolektif.
+ **Tarif** (angka antara 0 dan 100) — Persentase permintaan yang cocok dengan instrumen, setelah reservoir habis.
+ **Nama layanan** (string) - nama tahap API, dalam bentuk***\$1api-name\$1*/*\$1stage-name\$1***. Misalnya, jika Anda menerapkan API [PetStore](api-gateway-create-api-from-example.md)sampel ke tahap bernama`test`, nilai **nama Layanan** yang akan ditentukan dalam aturan pengambilan sampel Anda adalah. **pets/test**
+ **Jenis layanan** (string) - Untuk API Gateway API, baik **AWS::ApiGateway::Stage** atau **AWS::ApiGateway::\$1** dapat ditentukan.
+ **Host** (string) — Nama host dari header host HTTP. Setel ini **\$1** agar cocok dengan semua nama host. Atau Anda dapat menentukan nama host penuh atau sebagian untuk dicocokkan, misalnya, **api.example.com** atau**\$1.example.com**.
+ **Resource ARN** (string) — ARN dari tahap API, misalnya,. **arn:aws:apigateway:*region*::/restapis/*api-id*/stages/*stage-name***

  Nama panggung dapat diperoleh dari konsol atau API Gateway CLI atau API. Untuk informasi selengkapnya tentang format ARN, lihat. [Referensi Umum Amazon Web Services](https://docs.aws.amazon.com/general/latest/gr/)
+ **Metode HTTP** (string) — Metode yang akan diambil sampelnya, misalnya,**GET**.
+ **Jalur URL** (string) — Jalur URL permintaan.
+ (opsional) **Atribut** (kunci dan nilai) — Header dari permintaan HTTP asli, misalnya,, **Connection****Content-Length**, atau**Content-Type**. Setiap nilai atribut dapat mencapai 32 karakter.

## Contoh aturan pengambilan sampel X-Ray
<a name="apigateway-xray-sampling-rules-examples"></a>

**Contoh aturan pengambilan sampel \$11**

Aturan ini mengambil sampel semua `GET` permintaan untuk `testxray` API pada `test` tahap tersebut.
+ **Nama aturan -** **test-sampling**
+ **Prioritas -** **17**
+ **Ukuran waduk —** **10**
+ **Tarif tetap -** **10**
+ **Nama layanan -** **testxray/test**
+ **Jenis layanan -** **AWS::ApiGateway::Stage**
+ **Metode HTTP -** **GET**
+ **Sumber daya ARN —** **\$1**
+ **Tuan rumah —** **\$1**

**Contoh aturan pengambilan sampel \$12**

Aturan ini mengambil sampel semua permintaan untuk `testxray` API pada `prod` tahap tersebut.
+ **Nama aturan -** **prod-sampling**
+ **Prioritas -** **478**
+ **Ukuran waduk —** **1**
+ **Tarif tetap -** **60**
+ **Nama layanan -** **testxray/prod**
+ **Jenis layanan -** **AWS::ApiGateway::Stage**
+ **Metode HTTP -** **\$1**
+ **Sumber daya ARN —** **\$1**
+ **Tuan rumah —** **\$1**
+ **Atribut** — **\$1\$1**

# AWS X-Ray jejak untuk Amazon API Gateway APIs
<a name="apigateway-understanding-xray-traces"></a>

Bagian ini membahas segmen AWS X-Ray jejak, subsegmen, dan bidang jejak lainnya untuk Amazon API Gateway. APIs

Sebelum Anda membaca bagian ini, tinjau topik-topik berikut di Panduan Pengembang X-Ray:
+  [Gunakan sebuah Konsol Manajemen AWS](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html)
+  [Dokumen segmen X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments)
+ [Konsep](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html#xray-concepts)

**Topics**
+ [Contoh objek pelacakan untuk API Gateway API](#apigateway-understanding-xray-traces-example-segments)
+ [Memahami jejak](#apigateway-understanding-xray-traces-segments)

## Contoh objek pelacakan untuk API Gateway API
<a name="apigateway-understanding-xray-traces-example-segments"></a>

Bagian ini membahas beberapa objek yang mungkin Anda lihat dalam jejak untuk API Gateway API.

**Anotasi**

Anotasi dapat muncul di segmen dan subsegmen. Mereka digunakan sebagai ekspresi penyaringan dalam aturan pengambilan sampel untuk memfilter jejak. Untuk informasi selengkapnya, lihat [Mengonfigurasi aturan pengambilan sampel](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-sampling).

Berikut ini adalah contoh `annotations` objek, di mana tahap API diidentifikasi oleh ID API dan nama tahap API:

```
"annotations": {
    "aws:api_id": "a1b2c3d4e5",
    "aws:api_stage": "dev"
}
```

Untuk informasi selengkapnya tentang anotasi, lihat [dokumen segmen X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments), lalu pilih **dokumen segmen X-Ray**, **Anotasi**.

**AWS data sumber daya**

`aws`Objek hanya muncul di segmen. Berikut ini adalah contoh dari sebuah `aws` objek yang cocok dengan aturan Default sampling. Untuk penjelasan mendalam tentang aturan pengambilan sampel, lihat [Mengonfigurasi](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-console.html#xray-console-sampling) aturan pengambilan sampel.

```
"aws": {
    "xray": {
        "sampling_rule_name": "Default"
    },
    "api_gateway": {
        "account_id": "123412341234",
        "rest_api_id": "a1b2c3d4e5",
        "stage": "dev",
        "request_id": "a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4e5f6"
    }
}
```

Untuk informasi selengkapnya tentang `aws` objek, lihat [dokumen segmen X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments), lalu pilih **dokumen segmen X-Ray**, **data AWS sumber daya**.

## Memahami jejak
<a name="apigateway-understanding-xray-traces-segments"></a>

Berikut ini adalah segmen jejak untuk tahap API Gateway. Untuk penjelasan rinci tentang bidang yang membentuk segmen jejak, lihat [dokumen segmen X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray-interface-api.html#xray-api-segmentdocuments).

```
        {
            "Document": {
                "id": "a1b2c3d4a1b2c3d4",
                "name": "testxray/dev",
                "start_time": 1533928226.229,
                "end_time": 1533928226.614,
                "metadata": {
                    "default": {
                        "extended_request_id": "abcde12345abcde=",
                        "request_id": "a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4e5f6"
                    }
                },
                "http": {
                    "request": {
                        "url": "https://example.com/dev?username=demo&message=hellofromdemo/",
                        "method": "GET",
                        "client_ip": "192.0.2.0",
                        "x_forwarded_for": true
                    },
                    "response": {
                        "status": 200,
                        "content_length": 0
                    }
                },
                "aws": {
                    "xray": {
                        "sampling_rule_name": "Default"
                    },
                    "api_gateway": {
                        "account_id": "123412341234",
                        "rest_api_id": "a1b2c3d4e5",
                        "stage": "dev",
                        "request_id": "a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4e5f6"
                    }
                },
                "annotations": {
                    "aws:api_id": "a1b2c3d4e5",
                    "aws:api_stage": "dev"
                },
                "trace_id": "1-a1b2c3d4-a1b2c3d4a1b2c3d4a1b2c3d4",
                "origin": "AWS::ApiGateway::Stage",
                "resource_arn": "arn:aws:apigateway:us-east-1::/restapis/a1b2c3d4e5/stages/dev",
                "subsegments": [
                    {
                        "id": "abcdefgh12345678",
                        "name": "Lambda",
                        "start_time": 1533928226.233,
                        "end_time": 1533928226.6130002,
                        "http": {
                            "request": {
                                "url": "https://example.com/2015-03-31/functions/arn:aws:lambda:us-east-1:123412341234:function:xray123/invocations",
                                "method": "GET"
                            },
                            "response": {
                                "status": 200,
                                "content_length": 62
                            }
                        },
                        "aws": {
                            "function_name": "xray123",
                            "region": "us-east-1",
                            "operation": "Invoke",
                            "resource_names": [
                                "xray123"
                            ]
                        },
                        "namespace": "aws"
                    }
                ]
            },
            "Id": "a1b2c3d4a1b2c3d4"
        }
```