

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

# CloudFront dan logging fungsi tepi
<a name="logging"></a>

Amazon CloudFront menyediakan berbagai jenis logging. Anda dapat mencatat permintaan penampil yang datang ke CloudFront distribusi Anda, atau Anda dapat mencatat aktivitas CloudFront layanan (aktivitas API) di AWS akun Anda. Anda juga bisa mendapatkan log dari CloudFront Fungsi dan fungsi Lambda @Edge Anda.

## Mencatat permintaan
<a name="logging-requests"></a>

CloudFront menyediakan cara-cara berikut untuk mencatat permintaan yang datang ke distribusi Anda.

**Akses log (log standar)**  
CloudFrontlog akses menyediakan catatan rinci tentang setiap permintaan yang dibuat untuk distribusi. Anda dapat menggunakan log untuk skenario, seperti audit keamanan dan akses.   
CloudFrontlog akses dikirimkan ke tujuan pengiriman yang Anda tentukan.   
Gunakan log akses saat Anda membutuhkan:  
+ Analisis dan pelaporan historis
+ Audit keamanan dan persyaratan kepatuhan
+ Retensi log jangka panjang yang hemat biaya
Untuk informasi selengkapnya, lihat [Akses log (log standar)](AccessLogs.md).

**Log akses waktu nyata**  
CloudFrontLog akses real-time dikirimkan dalam hitungan detik setelah menerima permintaan dan memberikan informasi tentang permintaan yang dibuat ke distribusi secara real time. Anda dapat memilih *laju pengambilan sampel* untuk log akses real-time Anda—yaitu, persentase permintaan yang ingin Anda terima catatan log akses real-time. Anda juga dapat memilih kolom khusus yang ingin Anda terima dalam catatan log. Log akses real-time ideal untuk pemantauan langsung untuk kinerja pengiriman konten.  
CloudFront log akses real-time dikirimkan ke aliran data pilihan Anda di Amazon Kinesis Data Streams. CloudFront biaya untuk log akses real-time, selain biaya yang Anda keluarkan untuk menggunakan Kinesis Data Streams.  
Gunakan log akses real-time saat Anda membutuhkan:  
+ Pemantauan dan peringatan waktu nyata
+ Dasbor langsung dan wawasan operasional
Untuk informasi selengkapnya, lihat [Gunakan log akses waktu nyata](real-time-logs.md).

**Log koneksi**  
Log koneksi memberikan informasi rinci tentang koneksi antara server dan klien untuk distribusi mTLS diaktifkan. Log koneksi memberikan visibilitas ke informasi sertifikat klien, alasan kegagalan otentikasi mTLS dan apakah koneksi diizinkan atau ditolak.  
Seperti log akses (log standar), log koneksi dikirimkan ke tujuan pengiriman yang Anda tentukan.   
 Untuk mengaktifkan log koneksi, Anda harus terlebih dahulu [mengaktifkan mTL](mtls-authentication.md) untuk distribusi Anda. 
Gunakan log koneksi saat Anda membutuhkan:  
+ Alasan koneksi yang berhasil atau tidak berhasil selama jabat tangan TLS 
+ Visibilitas ke informasi sertifikat klien
Untuk informasi selengkapnya, lihat [Observabilitas menggunakan log koneksi](connection-logs.md).

## Fungsi tepi logging
<a name="logging-edge-functions"></a>

Anda dapat menggunakan Amazon CloudWatch Logs untuk mendapatkan log untuk fungsi edge Anda, baik Lambda @Edge maupun CloudFront Functions. Anda dapat mengakses log menggunakan CloudWatch konsol atau CloudWatch Logs API. Untuk informasi selengkapnya, lihat [Log fungsi tepi](edge-functions-logs.md).

## Aktivitas mencatat layanan
<a name="logging-service-activity"></a>

Anda dapat menggunakan AWS CloudTrail untuk mencatat aktivitas CloudFront layanan (aktivitas API) di AWS akun Anda. CloudTrail menyediakan catatan tindakan API yang diambil oleh pengguna, peran, atau AWS layanan di CloudFront. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan API yang dibuat CloudFront, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan.

Untuk informasi selengkapnya, lihat [Pencatatan panggilan CloudFront API Amazon menggunakan AWS CloudTrail](logging_using_cloudtrail.md).

Untuk informasi selengkapnya tentang pencatatan, lihat topik berikut:

**Topics**
+ [Mencatat permintaan](#logging-requests)
+ [Fungsi tepi logging](#logging-edge-functions)
+ [Aktivitas mencatat layanan](#logging-service-activity)
+ [Akses log (log standar)](AccessLogs.md)
+ [Gunakan log akses waktu nyata](real-time-logs.md)
+ [Log fungsi tepi](edge-functions-logs.md)
+ [Pencatatan panggilan CloudFront API Amazon menggunakan AWS CloudTrail](logging_using_cloudtrail.md)

# Akses log (log standar)
<a name="AccessLogs"></a>

Anda dapat mengonfigurasi CloudFront untuk membuat file log yang berisi informasi terperinci tentang setiap permintaan pengguna (penampil) yang CloudFront menerima. Ini disebut *log akses*, juga dikenal sebagai *log standar*. 

Setiap log berisi informasi seperti waktu permintaan diterima, waktu pemrosesan, jalur permintaan, dan respons server. Anda dapat menggunakan log akses ini untuk menganalisis waktu respons dan memecahkan masalah.

Diagram berikut menunjukkan bagaimana CloudFront log informasi tentang permintaan untuk objek Anda. Dalam contoh ini, distribusi dikonfigurasi untuk mengirim log akses ke bucket Amazon S3.

![\[Aliran dasar untuk log akses\]](http://docs.aws.amazon.com/id_id/AmazonCloudFront/latest/DeveloperGuide/images/Logging.png)


1. Dalam contoh ini, Anda memiliki dua situs web, A dan B, dan dua CloudFront distribusi yang sesuai. Pengguna meminta objek Anda menggunakan URLs yang terkait dengan distribusi Anda.

1. CloudFront merutekan setiap permintaan ke lokasi tepi yang sesuai.

1. CloudFront menulis data tentang setiap permintaan ke file log khusus untuk distribusi itu. Dalam contoh ini, informasi tentang permintaan yang terkait dengan Distribusi A masuk ke file log untuk Distribusi A. Informasi tentang permintaan yang terkait dengan Distribusi B masuk ke file log untuk Distribusi B.

1. CloudFront menyimpan file log secara berkala untuk distribusi di bucket Amazon S3 yang Anda tentukan saat mengaktifkan logging. CloudFront kemudian mulai menyimpan informasi tentang permintaan berikutnya dalam file log baru untuk distribusi.

   Jika pemirsa tidak mengakses konten Anda selama jam tertentu, Anda tidak akan menerima file log apa pun selama satu jam tersebut.

**catatan**  
Kami menyarankan Anda menggunakan log untuk memahami sifat permintaan untuk konten Anda, bukan sebagai akuntansi lengkap dari semua permintaan. CloudFront memberikan log akses dengan upaya terbaik. Entri log untuk permintaan tertentu mungkin dikirim dalam waktu lama setelah permintaan diproses secara aktual dan, dalam kasus yang jarang, entri log mungkin tidak dikirimkan sama sekali. Ketika entri log dihilangkan dari log akses, jumlah entri dalam log akses tidak akan cocok dengan penggunaan yang muncul dalam laporan AWS penagihan dan penggunaan.

CloudFront mendukung dua versi logging standar. Pencatatan standar (lama) mendukung pengiriman log akses Anda ke Amazon *S3* saja. Pencatatan standar (v2) mendukung tujuan pengiriman tambahan. Anda dapat mengonfigurasi keduanya atau salah satu opsi logging untuk distribusi Anda. Untuk informasi selengkapnya, lihat topik berikut:

**Topics**
+ [Mengonfigurasikan pencatatan standar (v2)](standard-logging.md)
+ [Mengonfigurasikan pencatatan standar (lama)](standard-logging-legacy-s3.md)
+ [Referensi logging standar](standard-logs-reference.md)

**Tip**  
CloudFront juga menawarkan log akses real-time, yang memberi Anda informasi tentang permintaan yang dibuat ke distribusi secara real time (log dikirimkan dalam hitungan detik setelah menerima permintaan). Anda dapat menggunakan log akses real-time untuk memantau, menganalisis, dan mengambil tindakan berdasarkan kinerja pengiriman konten. Lihat informasi yang lebih lengkap di [Gunakan log akses waktu nyata](real-time-logs.md).

# Mengonfigurasikan pencatatan standar (v2)
<a name="standard-logging"></a>

Anda dapat mengaktifkan log akses (log standar) saat Anda membuat atau memperbarui distribusi. Pencatatan standar (v2) mencakup fitur-fitur berikut:
+ Kirim log akses ke Amazon CloudWatch Logs, Amazon Data Firehose, dan Amazon Simple Storage Service (Amazon S3).
+ Pilih bidang log yang Anda inginkan. Anda juga dapat memilih [subset bidang log akses real-time](#standard-logging-real-time-log-selection).
+ Pilih format [file log keluaran](#supported-log-file-format) tambahan.

Jika Anda menggunakan Amazon S3, Anda memiliki fitur opsional berikut:
+ Kirim log ke opt-in Wilayah AWS.
+ Atur log Anda dengan partisi.
+ Aktifkan nama file yang kompatibel dengan HIVE.

Untuk informasi selengkapnya, lihat [Mengirim log ke Amazon S3](#send-logs-s3).

Untuk memulai dengan pencatatan standar, selesaikan langkah-langkah berikut:

1. Siapkan izin yang diperlukan untuk yang ditentukan Layanan AWS yang akan menerima log Anda.

1. Konfigurasikan logging standar dari CloudFront konsol atau CloudWatch API.

1. Lihat log akses Anda.

**catatan**  
Jika Anda mengaktifkan pencatatan standar (v2), ini tidak memengaruhi atau mengubah logging standar (lama). Anda dapat terus menggunakan logging standar (legacy) untuk distribusi Anda, selain menggunakan logging standar (v2). Untuk informasi selengkapnya, lihat [Mengonfigurasikan pencatatan standar (lama)](standard-logging-legacy-s3.md).
Jika Anda sudah mengaktifkan pencatatan standar (lama) dan ingin mengaktifkan pencatatan standar (v2) ke Amazon S3, sebaiknya tentukan bucket Amazon S3 *yang* berbeda atau gunakan jalur *terpisah di bucket yang* sama (misalnya, gunakan awalan log atau partisi). Ini membantu Anda melacak file log mana yang terkait dengan distribusi mana dan mencegah file log saling menimpa.

## Izin
<a name="permissions-standard-logging"></a>

CloudFront menggunakan log CloudWatch vended untuk mengirimkan log akses. Untuk melakukannya, Anda memerlukan izin untuk yang ditentukan Layanan AWS sehingga Anda dapat mengaktifkan pengiriman logging.

Untuk melihat izin yang diperlukan untuk setiap tujuan pencatatan, pilih dari topik berikut di *Panduan Pengguna Amazon CloudWatch Logs*.
+ [CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)
+ [Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3)

Setelah menyiapkan izin ke tujuan pencatatan, Anda dapat mengaktifkan pencatatan standar untuk distribusi Anda.

**catatan**  
CloudFront mendukung pengiriman log akses ke yang berbeda Akun AWS (lintas akun). Untuk mengaktifkan pengiriman lintas akun, kedua akun (akun Anda dan akun penerima) harus memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Aktifkan pencatatan standar untuk pengiriman lintas akun](#enable-standard-logging-cross-accounts) bagian atau [contoh pengiriman lintas akun](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#vended-logs-crossaccount-example) di *Panduan Pengguna CloudWatch Log Amazon*. 

## Aktifkan logging standar
<a name="set-up-standard-logging"></a>

Untuk mengaktifkan logging standar, Anda dapat menggunakan CloudFront konsol atau CloudWatch API.

**Contents**
+ [Aktifkan logging standar (CloudFront konsol)](#access-logging-console)
+ [Aktifkan logging standar (CloudWatch API)](#enable-access-logging-api)

### Aktifkan logging standar (CloudFront konsol)
<a name="access-logging-console"></a>

**Untuk mengaktifkan pencatatan standar untuk CloudFront distribusi (konsol)**

1. Gunakan CloudFront konsol untuk [memperbarui distribusi yang ada](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure).

1. Pilih tab **Logging**.

1. Pilih **Tambah**, lalu pilih layanan untuk menerima log Anda:
   + CloudWatch Log
   + Firehouse
   + Amazon S3

1. Untuk **Tujuan**, pilih sumber daya untuk layanan Anda. Jika Anda belum membuat sumber daya, Anda dapat memilih **Buat** atau melihat dokumentasi berikut.
   + Untuk CloudWatch Log, masukkan **[nama grup Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)**.
   + Untuk Firehose, masuk ke aliran pengiriman **[Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)**.
   + Untuk Amazon S3, masukkan nama **[Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)**. 
**Tip**  
Untuk menentukan awalan, masukkan awalan setelah nama bucket, seperti. `amzn-s3-demo-bucket.s3.amazonaws.com/MyLogPrefix` Jika Anda tidak menentukan awalan, secara otomatis CloudFront akan menambahkan satu untuk Anda. Untuk informasi selengkapnya, lihat [Mengirim log ke Amazon S3](#send-logs-s3).

1. Untuk **Pengaturan tambahan - *opsional***, Anda dapat menentukan opsi berikut:

   1. Untuk **pemilihan Bidang**, pilih nama bidang log yang ingin Anda kirimkan ke tujuan Anda. Anda dapat memilih [bidang log akses](standard-logs-reference.md#BasicDistributionFileFormat) dan subset [bidang log akses real-time](#standard-logging-real-time-log-selection).

   1. (Hanya Amazon S3) Untuk **Partisi, tentukan jalur untuk mempartisi** data file log Anda. 

   1. (Hanya Amazon S3) Untuk **format file yang kompatibel dengan HIVE**, Anda dapat memilih kotak centang untuk menggunakan jalur S3 yang kompatibel dengan HIVE. Ini membantu menyederhanakan pemuatan data baru ke alat yang kompatibel dengan HIVE Anda.

   1. Untuk **format Output**, tentukan format pilihan Anda.
**catatan**  
Jika Anda memilih **Parket**, opsi ini CloudWatch dikenakan biaya untuk mengonversi log akses Anda ke Apache Parquet. Untuk informasi selengkapnya, lihat [bagian Vended Logs untuk CloudWatch harga](https://aws.amazon.com/cloudwatch/pricing/).

   1. Untuk **pembatas bidang**, tentukan cara memisahkan bidang log. 

1. Selesaikan langkah-langkah untuk memperbarui atau membuat distribusi Anda.

1. Untuk menambahkan tujuan lain, ulangi langkah 3—6.

1. Dari halaman **Log**, verifikasi bahwa status log standar **Diaktifkan** di sebelah distribusi.

1. (Opsional) Untuk mengaktifkan pencatatan cookie, pilih **Kelola**, **Pengaturan**, dan aktifkan **Pencatatan cookie**, lalu pilih **Simpan perubahan**.
**Tip**  
Cookie logging adalah pengaturan global yang berlaku untuk *semua* logging standar untuk distribusi Anda. Anda tidak dapat mengganti pengaturan ini untuk tujuan pengiriman terpisah.

Untuk informasi selengkapnya tentang pengiriman logging standar dan bidang log, lihat[Referensi logging standar](standard-logs-reference.md).

### Aktifkan logging standar (CloudWatch API)
<a name="enable-access-logging-api"></a>

Anda juga dapat menggunakan CloudWatch API untuk mengaktifkan logging standar untuk distribusi Anda. 

**Catatan**  
Saat memanggil CloudWatch API untuk mengaktifkan pencatatan standar, Anda harus menentukan Wilayah AS Timur (Virginia Utara) (`us-east-1`), meskipun Anda ingin mengaktifkan pengiriman lintas Wilayah ke tujuan lain. Misalnya, jika Anda ingin mengirim log akses ke bucket S3 di Wilayah Eropa (Irlandia) (`eu-west-1`), gunakan CloudWatch API di `us-east-1` Wilayah.
Ada opsi tambahan untuk memasukkan cookie dalam pencatatan standar. Di CloudFront API, ini adalah `IncludeCookies` parameternya. Jika Anda mengonfigurasi pencatatan akses dengan menggunakan CloudWatch API dan Anda menentukan bahwa Anda ingin menyertakan cookie, Anda harus menggunakan CloudFront konsol atau CloudFront API untuk memperbarui distribusi Anda untuk menyertakan cookie. Jika tidak, tidak CloudFront dapat mengirim cookie ke tujuan log Anda. Untuk informasi selengkapnya, lihat [Pencatatan cookie](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging).

**Untuk mengaktifkan pencatatan standar untuk distribusi (CloudWatch API)**

1. Setelah Anda membuat distribusi, dapatkan Amazon Resource Name (ARN). 

   Anda dapat menemukan ARN dari halaman **Distribusi** di CloudFront konsol atau Anda dapat menggunakan operasi [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html)API. Sebuah distribusi ARN mengikuti format: `arn:aws:cloudfront::123456789012:distribution/d111111abcdef8` 

1. Selanjutnya, gunakan operasi CloudWatch [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)API untuk membuat sumber pengiriman untuk distribusi. 

   1. Masukkan nama untuk sumber pengiriman.

   1. `resourceArn`Lewati distribusi. 

   1. Untuk`logType`, tentukan `ACCESS_LOGS` sebagai jenis log yang dikumpulkan. 

   1.   
**Example Contoh AWS CLI put-delivery-source perintah**  

      Berikut ini adalah contoh konfigurasi sumber pengiriman untuk distribusi.

      ```
      aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS
      ```

      **Keluaran**

      ```
      {
       "deliverySource": {
       "name": "S3-delivery",
       "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery",
       "resourceArns": [
       "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8"
       ],
       "service": "cloudfront",
       "logType": "ACCESS_LOGS"
       }
      }
      ```

1. Gunakan operasi [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)API untuk mengonfigurasi tempat menyimpan log Anda. 

   1. Untuk`destinationResourceArn`, tentukan ARN tujuan. Ini bisa berupa grup CloudWatch log Log, aliran pengiriman Firehose, atau bucket Amazon S3.

   1. Untuk`outputFormat`, tentukan format output untuk log Anda.

   1.   
**Example Contoh AWS CLI put-delivery-destination perintah**  

      Berikut ini adalah contoh mengonfigurasi tujuan pengiriman ke bucket Amazon S3.

      ```
      aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket
      ```

      **Keluaran**

      ```
      {
          "name": "S3-destination",
          "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination",
          "deliveryDestinationType": "S3",
          "deliveryDestinationConfiguration": {
              "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket"
          }
      }
      ```
**catatan**  
Jika mengirimkan log lintas akun, Anda harus menggunakan operasi [PutDeliveryDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html)API untuk menetapkan kebijakan AWS Identity and Access Management (IAM) ke akun tujuan. Kebijakan IAM memungkinkan pengiriman dari satu akun ke akun lain.

1. Gunakan operasi [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)API untuk menautkan sumber pengiriman ke tujuan yang Anda buat di langkah sebelumnya. Operasi API ini mengaitkan sumber pengiriman dengan tujuan akhir.

   1. Untuk`deliverySourceName`, tentukan nama sumbernya.

   1. Untuk`deliveryDestinationArn`, tentukan ARN untuk tujuan pengiriman.

   1. Untuk`fieldDelimiter`, tentukan string untuk memisahkan setiap bidang log.

   1. Untuk`recordFields`, tentukan bidang log yang Anda inginkan.

   1. Jika Anda menggunakan S3, tentukan apakah akan menggunakan `enableHiveCompatiblePath` dan`suffixPath`.  
**Example Contoh perintah AWS CLI create-delivery**  

   Berikut ini adalah contoh pembuatan pengiriman. 

   ```
   aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination
   ```

   **Keluaran**

   ```
   {
       "id": "abcNegnBoTR123",
       "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123",
       "deliverySourceName": "cf-delivery",
       "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination",
       "deliveryDestinationType": "S3",
       "recordFields": [
           "date",
           "time",
           "x-edge-location",
           "sc-bytes",
           "c-ip",
           "cs-method",
           "cs(Host)",
           "cs-uri-stem",
           "sc-status",
           "cs(Referer)",
           "cs(User-Agent)",
           "cs-uri-query",
           "cs(Cookie)",
           "x-edge-result-type",
           "x-edge-request-id",
           "x-host-header",
           "cs-protocol",
           "cs-bytes",
           "time-taken",
           "x-forwarded-for",
           "ssl-protocol",
           "ssl-cipher",
           "x-edge-response-result-type",
           "cs-protocol-version",
           "fle-status",
           "fle-encrypted-fields",
           "c-port",
           "time-to-first-byte",
           "x-edge-detailed-result-type",
           "sc-content-type",
           "sc-content-len",
           "sc-range-start",
           "sc-range-end",
           "c-country",
           "cache-behavior-path-pattern"
       ],
        "fieldDelimiter": ""
   }
   ```

1. Dari CloudFront konsol, pada halaman **Log**, verifikasi bahwa status log standar **Diaktifkan** di sebelah distribusi.

   Untuk informasi selengkapnya tentang pengiriman logging standar dan bidang log, lihat[Referensi logging standar](standard-logs-reference.md).

**catatan**  
Untuk mengaktifkan logging standar (v2) CloudFront dengan menggunakan AWS CloudFormation, Anda dapat menggunakan properti CloudWatch Log berikut:  
[Pengiriman](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)
[DeliveryDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)
[DeliverySource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)
`ResourceArn`Ini adalah CloudFront distribusi dan `LogType` harus `ACCESS_LOGS` sebagai jenis log yang didukung.

## Aktifkan pencatatan standar untuk pengiriman lintas akun
<a name="enable-standard-logging-cross-accounts"></a>

Jika Anda mengaktifkan pencatatan standar untuk Anda Akun AWS dan Anda ingin mengirimkan log akses Anda ke akun lain, pastikan Anda mengonfigurasi akun sumber dan akun tujuan dengan benar. *Akun sumber* dengan CloudFront distribusi mengirimkan log aksesnya ke *akun tujuan*.

Dalam contoh prosedur ini, akun sumber*111111111111*) mengirimkan log aksesnya ke bucket Amazon S3 di akun tujuan ()*222222222222*. Untuk mengirim log akses ke bucket Amazon S3 di akun tujuan, gunakan file. AWS CLI

### Konfigurasikan akun tujuan
<a name="steps-destination-account"></a>

Untuk akun tujuan, selesaikan prosedur berikut.

**Untuk mengkonfigurasi akun tujuan**

1. Untuk membuat tujuan pengiriman log, Anda dapat memasukkan AWS CLI perintah berikut. Contoh ini menggunakan `MyLogPrefix` string untuk membuat awalan untuk log akses Anda.

   ```
   aws logs put-delivery-destination --name cloudfront-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"
   ```

   **Keluaran**

   ```
   {
       "deliveryDestination": {
           "name": "cloudfront-delivery-destination",
           "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination",
           "deliveryDestinationType": "S3",
           "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"}
       }
   }
   ```
**catatan**  
Jika Anda menentukan bucket S3 *tanpa* awalan, secara otomatis CloudFront akan menambahkan `AWSLogs/<account-ID>/CloudFront` sebagai awalan yang muncul di tujuan pengiriman `suffixPath` S3. Untuk informasi lebih lanjut, lihat [S3 DeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html).

1. Tambahkan kebijakan sumber daya untuk tujuan pengiriman log agar akun sumber dapat membuat pengiriman log.

   Dalam kebijakan berikut, ganti *111111111111* dengan ID akun sumber dan tentukan ARN tujuan pengiriman dari output pada langkah 1. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCreateDelivery",
               "Effect": "Allow",
               "Principal": {"AWS": "111111111111"},
               "Action": ["logs:CreateDelivery"],
               "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination"
           }
       ]
   }
   ```

------

1. Simpan file, seperti`deliverypolicy.json`.

1. Untuk melampirkan kebijakan sebelumnya ke tujuan pengiriman, masukkan AWS CLI perintah berikut.

   ```
   aws logs put-delivery-destination-policy --delivery-destination-name cloudfront-delivery-destination --delivery-destination-policy file://deliverypolicy.json
   ```

1. Tambahkan pernyataan di bawah ini ke kebijakan bucket Amazon S3 tujuan, menggantikan ARN sumber daya dan ID akun sumber. Kebijakan ini memungkinkan kepala `delivery.logs.amazonaws.com` layanan untuk melakukan `s3:PutObject` tindakan.

   ```
   {
       "Sid": "AWSLogsDeliveryWrite",
       "Effect": "Allow",
       "Principal": {"Service": "delivery.logs.amazonaws.com"},
       "Action": "s3:PutObject",
       "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*",
       "Condition": {
           "StringEquals": {
               "s3:x-amz-acl": "bucket-owner-full-control",
               "aws:SourceAccount": "111111111111"
           },
           "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"}
       }
   }
   ```

1. Jika Anda menggunakan AWS KMS bucket, tambahkan pernyataan berikut ke kebijakan kunci KMS untuk memberikan izin kepada prinsipal `delivery.logs.amazonaws.com` layanan.

   ```
   {
       "Sid": "Allow Logs Delivery to use the key",
       "Effect": "Allow",
       "Principal": {"Service": "delivery.logs.amazonaws.com"},
       "Action": [
           "kms:Encrypt",
           "kms:Decrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey*",
           "kms:DescribeKey"
       ],
       "Resource": "*",
       "Condition": {
           "StringEquals": {"aws:SourceAccount": "111111111111"},
           "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"}
       }
   }
   ```

### Konfigurasikan akun sumber
<a name="steps-source-account"></a>

Setelah Anda mengonfigurasi akun tujuan, ikuti prosedur ini untuk membuat sumber pengiriman dan mengaktifkan pencatatan untuk distribusi di akun sumber.

**Untuk mengkonfigurasi akun sumber**

1. Buat sumber pengiriman untuk pencatatan CloudFront standar sehingga Anda dapat mengirim file log ke CloudWatch Log. 

   Anda dapat memasukkan AWS CLI perintah berikut, mengganti nama dan ARN distribusi Anda.

   ```
   aws logs put-delivery-source --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS
   ```

   **Keluaran**

   ```
   {
       "deliverySource": {
           "name": "s3-cf-delivery",
           "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery",
           "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"],
           "service": "cloudfront",
           "logType": "ACCESS_LOGS"
       }
   }
   ```

1. Buat pengiriman untuk memetakan sumber pengiriman log akun sumber dan tujuan pengiriman log akun tujuan.

   Dalam AWS CLI perintah berikut, tentukan ARN tujuan pengiriman dari output di [Langkah 1: Konfigurasikan akun tujuan](#steps-destination-account).

   ```
   aws logs create-delivery --delivery-source-name s3-cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination
   ```

   **Keluaran**

   ```
   {
       "delivery": {
           "id": "OPmOpLahVzhx1234",
           "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234",
           "deliverySourceName": "s3-cf-delivery",
           "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination",
           "deliveryDestinationType": "S3",
           "recordFields": [
               "date",
               "time",
               "x-edge-location",
               "sc-bytes",
               "c-ip",
               "cs-method",
               "cs(Host)",
               "cs-uri-stem",
               "sc-status",
               "cs(Referer)",
               "cs(User-Agent)",
               "cs-uri-query",
               "cs(Cookie)",
               "x-edge-result-type",
               "x-edge-request-id",
               "x-host-header",
               "cs-protocol",
               "cs-bytes",
               "time-taken",
               "x-forwarded-for",
               "ssl-protocol",
               "ssl-cipher",
               "x-edge-response-result-type",
               "cs-protocol-version",
               "fle-status",
               "fle-encrypted-fields",
               "c-port",
               "time-to-first-byte",
               "x-edge-detailed-result-type",
               "sc-content-type",
               "sc-content-len",
               "sc-range-start",
               "sc-range-end",
               "c-country",
               "cache-behavior-path-pattern"
           ],
           "fieldDelimiter": "\t"
       }
   }
   ```

1. Verifikasi pengiriman lintas akun Anda berhasil.

   1. Dari *source* akun, masuk ke CloudFront konsol dan pilih distribusi Anda. Pada tab **Logging**, di bawah **Type**, Anda akan melihat entri yang dibuat untuk pengiriman log lintas akun S3.

   1. Dari *destination* akun, masuk ke konsol Amazon S3 dan pilih bucket Amazon S3 Anda. Anda akan melihat awalan `MyLogPrefix` di nama bucket dan log akses apa pun yang dikirimkan ke folder itu. 

## Format file keluaran
<a name="supported-log-file-format"></a>

Bergantung pada tujuan pengiriman yang Anda pilih, Anda dapat menentukan salah satu format berikut untuk file log:
+ JSON
+ Biasa
+ w3c
+ Mentah
+ Parket (hanya Amazon S3)

**catatan**  
Anda hanya dapat mengatur format output saat pertama kali membuat tujuan pengiriman. Ini tidak dapat diperbarui nanti. Untuk mengubah format output, hapus pengiriman dan buat yang baru.

Untuk informasi selengkapnya, lihat [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)di *Referensi API Amazon CloudWatch Logs*.

## Edit pengaturan logging standar
<a name="standard-logs-v2-edit-settings"></a>

Anda dapat mengaktifkan atau menonaktifkan logging dan memperbarui pengaturan log lainnya dengan menggunakan [CloudFront konsol](https://console.aws.amazon.com/cloudfront/v4/home) atau CloudWatch API. Perubahan Anda pada pengaturan log mulai berlaku dalam 12 jam.

Untuk informasi selengkapnya, lihat topik berikut:
+ Untuk memperbarui distribusi menggunakan CloudFront konsol, lihat[Perbarui distribusi](HowToUpdateDistribution.md).
+ Untuk memperbarui distribusi menggunakan CloudFront API, lihat [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)di *Referensi Amazon CloudFront API*.
+ Untuk informasi selengkapnya tentang operasi API CloudWatch Log, lihat [Referensi API Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/Welcome.html).

## Akses bidang log
<a name="standard-logging-real-time-log-selection"></a>

Anda dapat memilih bidang log yang sama yang didukung oleh pencatatan standar (lama). Untuk informasi selengkapnya, lihat [bidang file log](standard-logs-reference.md#BasicDistributionFileFormat).

Selain itu, Anda dapat memilih [bidang log akses real-time](real-time-logs.md#understand-real-time-log-config) berikut.

1. `timestamp(ms)`— Timestamp dalam milidetik.

1. `origin-fbl`— Jumlah detik latensi byte pertama antara CloudFront dan asal Anda. 

1. `origin-lbl`— Jumlah detik latensi byte terakhir antara CloudFront dan asal Anda. 

1. `asn`— Nomor sistem otonom (ASN) dari pemirsa. 

1. `c-country`— Kode negara yang mewakili lokasi geografis pemirsa, sebagaimana ditentukan oleh alamat IP pemirsa. Untuk daftar kode negara, lihat [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

1. `cache-behavior-path-pattern`— Pola jalur yang mengidentifikasi perilaku cache yang cocok dengan permintaan penampil. 

## Kirim log ke CloudWatch Log
<a name="send-logs-cloudwatch-logs"></a>

Untuk mengirim CloudWatch log ke Log, buat atau gunakan grup CloudWatch log Log yang ada. Untuk informasi selengkapnya tentang mengonfigurasi grup CloudWatch log Log, lihat [Bekerja dengan Grup Log dan Aliran Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

Setelah membuat grup log, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya tentang izin yang diperlukan, lihat [Log yang dikirim ke CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs) di *Panduan Pengguna CloudWatch Log Amazon*. 

**Catatan**  
Saat Anda menentukan nama grup CloudWatch log Log, hanya gunakan pola regex. `[\w-]` Untuk informasi selengkapnya, lihat operasi [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax)API di *Referensi API Amazon CloudWatch Logs*.
Pastikan kebijakan sumber daya grup log Anda tidak melebihi batas ukuran. Lihat bagian [Pertimbangan batas ukuran kebijakan sumber daya grup log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs) di topik CloudWatch Log.

### Contoh log akses dikirim ke CloudWatch Log
<a name="example-access-logs-cwl"></a>

```
{ 
"date": "2024-11-14", 
"time": "21:34:06", 
"x-edge-location": "SOF50-P2", 
"asn": "16509", 
"timestamp(ms)": "1731620046814", 
"origin-fbl": "0.251", 
"origin-lbl": "0.251", 
"x-host-header": "d111111abcdef8.cloudfront.net", 
"cs(Cookie)": "examplecookie=value" 
}
```

## Kirim log ke Firehose
<a name="send-logs-kinesis"></a>

Untuk mengirim log ke Firehose, buat atau gunakan aliran pengiriman Firehose yang ada. Kemudian, tentukan aliran pengiriman Firehose sebagai tujuan pengiriman log. Anda harus menentukan aliran pengiriman Firehose di Wilayah us-east-1 AS Timur (Virginia Utara).

Untuk informasi tentang membuat aliran pengiriman, lihat [Membuat aliran pengiriman Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html). 

Setelah membuat aliran pengiriman, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya, lihat [Log yang dikirim ke Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose) di *Panduan Pengguna Amazon CloudWatch Logs*.

**catatan**  
Saat Anda menentukan nama aliran Firehose, hanya gunakan pola regex. `[\w-]` Untuk informasi selengkapnya, lihat operasi [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax)API di *Referensi API Amazon CloudWatch Logs*.

### Contoh log akses dikirim ke Firehose
<a name="example-access-logs-firehose"></a>

```
{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
{"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
```

## Mengirim log ke Amazon S3
<a name="send-logs-s3"></a>

Untuk mengirim log akses ke Amazon S3, buat atau gunakan bucket S3 yang sudah ada. Saat Anda mengaktifkan login CloudFront, tentukan nama bucket. Untuk informasi tentang membuat bucket, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

Setelah membuat bucket, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya, lihat [Log yang dikirim ke Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3) di *Panduan Pengguna Amazon CloudWatch Logs*.
+ Setelah mengaktifkan pencatatan, AWS secara otomatis menambahkan kebijakan bucket yang diperlukan untuk Anda.
+ [Anda juga dapat menggunakan bucket S3 dalam opt-in. Wilayah AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)

**catatan**  
Jika Anda sudah mengaktifkan pencatatan standar (lama) dan ingin mengaktifkan pencatatan standar (v2) ke Amazon S3, sebaiknya tentukan bucket Amazon S3 *yang* berbeda atau gunakan jalur *terpisah di bucket yang* sama (misalnya, gunakan awalan log atau partisi). Ini membantu Anda melacak file log mana yang terkait dengan distribusi mana dan mencegah file log saling menimpa.

**Topics**
+ [Tentukan ember S3](#prefix-s3-buckets)
+ [Partitioning](#partitioning)
+ [Format nama file yang kompatibel dengan HIVE](#hive-compatible-file-name-format)
+ [Contoh jalur untuk mengakses log](#bucket-path-examples)
+ [Contoh log akses dikirim ke Amazon S3](#example-access-logs-s3)

### Tentukan ember S3
<a name="prefix-s3-buckets"></a>

Saat Anda menentukan bucket S3 sebagai tujuan pengiriman, perhatikan hal berikut.

Nama bucket S3 hanya dapat menggunakan pola regex. `[\w-]` Untuk informasi selengkapnya, lihat operasi [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax)API di *Referensi API Amazon CloudWatch Logs*.

Jika Anda menetapkan awalan untuk bucket S3 Anda, log Anda akan muncul di bawah jalur itu. Jika Anda tidak menentukan awalan, secara otomatis CloudFront akan menambahkan `AWSLogs/{account-id}/CloudFront` awalan untuk Anda. 

Untuk informasi selengkapnya, lihat [Contoh jalur untuk mengakses log](#bucket-path-examples).

### Partitioning
<a name="partitioning"></a>

Anda dapat menggunakan partisi untuk mengatur log akses Anda saat CloudFront mengirimkannya ke bucket S3 Anda. Ini membantu Anda mengatur dan menemukan log akses Anda berdasarkan jalur yang Anda inginkan.

Anda dapat menggunakan variabel berikut untuk membuat jalur folder.
+ `{DistributionId}` atau `{distributionid}`
+ `{yyyy}`
+ `{MM}`
+ `{dd}`
+ `{HH}`
+ `{accountid}`

Anda dapat menggunakan sejumlah variabel dan menentukan nama folder di jalur Anda. CloudFrontkemudian gunakan jalur ini untuk membuat struktur folder untuk Anda di ember S3.

**Contoh**
+ `my_distribution_log_data/{DistributionId}/logs`
+ `/cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs `

**catatan**  
 Anda dapat menggunakan salah satu variabel untuk ID distribusi di jalur sufiks. Namun, jika Anda mengirim log akses ke AWS Glue, Anda harus menggunakan `{distributionid}` variabel karena AWS Glue mengharapkan nama partisi berada dalam huruf kecil. Perbarui konfigurasi log Anda yang ada CloudFront untuk menggantikan `{DistributionId}` dengan`{distributionid}`. 

### Format nama file yang kompatibel dengan HIVE
<a name="hive-compatible-file-name-format"></a>

Anda dapat menggunakan opsi ini sehingga objek S3 yang berisi log akses terkirim menggunakan struktur awalan yang memungkinkan integrasi dengan Apache Hive. Untuk informasi selengkapnya, lihat operasi API [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html).

**Example Contoh**  

```
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs
```

*Untuk informasi selengkapnya tentang partisi dan opsi yang kompatibel dengan HIVE, lihat [elemen S3 DeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html) di Referensi API Amazon Logs. CloudWatch *

### Contoh jalur untuk mengakses log
<a name="bucket-path-examples"></a>

Saat menentukan bucket S3 sebagai tujuan, Anda dapat menggunakan opsi berikut untuk membuat jalur ke log akses:
+ Bucket Amazon S3, dengan atau tanpa awalan
+ Partisi, dengan menggunakan variabel yang CloudFront disediakan atau memasukkan variabel Anda sendiri
+ Mengaktifkan opsi yang kompatibel dengan HIVE

Tabel berikut menunjukkan bagaimana log akses Anda muncul di bucket, tergantung pada opsi yang Anda pilih.

#### Bucket Amazon S3 dengan awalan
<a name="bucket-with-prefix"></a>


| Nama ember Amazon S3 | Partisi yang Anda tentukan di jalur sufiks | Jalur sufiks yang diperbarui | Hive-kompatibel diaktifkan? | Log akses dikirim ke | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket/MyLogPrefix | Tidak ada | Tidak ada | Tidak | amzn-s3-demo-bucket/MyLogPrefix/ | 
| amzn-s3-demo-bucket/MyLogPrefix | myFolderA/ | myFolderA/ | Tidak | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/ | 
| amzn-s3-demo-bucket/MyLogPrefix | myFolderA/\$1yyyy\$1 | myFolderA/\$1yyyy\$1 | Ya | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025 | 

#### Bucket Amazon S3 tanpa awalan
<a name="bucket-without-prefix"></a>


| Nama ember Amazon S3 | Partisi yang Anda tentukan di jalur sufiks | Jalur sufiks yang diperbarui | Hive-kompatibel diaktifkan? | Log akses dikirim ke | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket | Tidak ada | AWSLogs/\$1account-id\$1/CloudFront/ | Tidak | amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/ | 
| amzn-s3-demo-bucket | myFolderA/ | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/ | Tidak | amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/ | 
| amzn-s3-demo-bucket | myFolderA/ | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/ | Ya | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/ | 
| amzn-s3-demo-bucket | myFolderA/\$1yyyy\$1 | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/\$1yyyy\$1 | Ya | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025 | 

#### Akun AWS ID sebagai partisi
<a name="bucket-account-id-partition"></a>


| Nama ember Amazon S3 | Partisi yang Anda tentukan di jalur sufiks | Jalur sufiks yang diperbarui | Hive-kompatibel diaktifkan? | Log akses dikirim ke | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket | Tidak ada | AWSLogs/\$1account-id\$1/CloudFront/ | Ya | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/ | 
| amzn-s3-demo-bucket | myFolderA/\$1accountid\$1 | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/\$1accountid\$1 | Ya | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-account-ID> | 

**Catatan**  
`{account-id}`Variabel dicadangkan untuk CloudFront. CloudFrontsecara otomatis menambahkan variabel ini ke jalur sufiks jika Anda menentukan *bucket Amazon S3 tanpa awalan*. Jika log Anda kompatibel dengan HIVE, variabel ini muncul sebagai. `aws-account-id`
Anda dapat menggunakan `{accountid}` variabel sehingga CloudFront menambahkan ID akun Anda ke jalur akhiran. Jika log Anda kompatibel dengan HIVE, variabel ini muncul sebagai. `accountid`
Untuk informasi selengkapnya tentang jalur sufiks, lihat [DeliveryConfigurationS3](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html).

### Contoh log akses dikirim ke Amazon S3
<a name="example-access-logs-s3"></a>

```
#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie)
2024-11-14    22:30:25    SOF50-P2    16509    1731623425421    
d111111abcdef8.cloudfront.net    examplecookie=value2
```

## Nonaktifkan logging standar
<a name="delete-standard-log-destination"></a>

Anda dapat menonaktifkan pencatatan standar untuk distribusi Anda jika Anda tidak lagi membutuhkannya.

**Untuk menonaktifkan logging standar**

1. Masuk ke CloudFront konsol.

1. Pilih **Distribusi** dan kemudian pilih ID distribusi Anda. 

1. Pilih **Logging** dan kemudian di bawah **Akses log tujuan**, pilih tujuan.

1. Pilih **Kelola** dan kemudian pilih **Hapus**.

1. Ulangi langkah sebelumnya jika Anda memiliki lebih dari satu logging standar.

**catatan**  
Saat Anda menghapus logging standar dari CloudFront konsol, tindakan ini hanya menghapus pengiriman dan tujuan pengiriman. Itu tidak menghapus sumber pengiriman dari Anda Akun AWS. Untuk menghapus sumber pengiriman, tentukan nama sumber pengiriman dalam `aws logs delete-delivery-source --name DeliverySourceName` perintah. Untuk informasi selengkapnya, lihat [DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html)di *Referensi API Amazon CloudWatch Logs*.

## Pemecahan Masalah
<a name="troubleshooting-access-logs-v2"></a>

Gunakan informasi berikut untuk memperbaiki masalah umum saat Anda bekerja dengan logging CloudFront standar (v2).

### Sumber pengiriman sudah ada
<a name="access-logging-resource-already-used"></a>

Saat mengaktifkan pencatatan standar untuk distribusi, Anda membuat sumber pengiriman. Anda kemudian menggunakan sumber pengiriman tersebut untuk membuat pengiriman ke jenis tujuan yang Anda inginkan: CloudWatch Log, Firehose, Amazon S3. Saat ini, Anda hanya dapat memiliki satu sumber pengiriman per distribusi. Jika Anda mencoba membuat sumber pengiriman lain untuk distribusi yang sama, pesan galat berikut akan muncul.

```
This ResourceId has already been used in another Delivery Source in this account
```

Untuk membuat sumber pengiriman lain, hapus yang sudah ada terlebih dahulu. Untuk informasi selengkapnya, lihat [DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html)di *Referensi API Amazon CloudWatch Logs*.

### Saya mengubah jalur sufiks dan ember Amazon S3 tidak dapat menerima log saya
<a name="access-logging-s3-permission"></a>

Jika Anda mengaktifkan pencatatan standar (v2) dan menentukan ARN bucket tanpa awalan, CloudFront akan menambahkan default berikut ke jalur sufiks:. `AWSLogs/{account-id}/CloudFront` Jika Anda menggunakan CloudFront konsol atau operasi [UpdateDeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateDeliveryConfiguration.html)API untuk menentukan jalur sufiks yang berbeda, Anda harus memperbarui kebijakan bucket Amazon S3 untuk menggunakan jalur yang sama.

**Example Contoh: Memperbarui jalur sufiks**  

1. Jalur sufiks default Anda adalah `AWSLogs/{account-id}/CloudFront` dan Anda menggantinya dengan`myFolderA`. 

1. Karena jalur akhiran baru Anda berbeda dari jalur yang ditentukan dalam kebijakan bucket Amazon S3, log akses Anda tidak akan dikirimkan.

1. Anda dapat melakukan salah satu langkah berikut:
   + Perbarui izin bucket Amazon S3 dari ke`amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/*`. `amzn-s3-demo-bucket/myFolderA/*`
   + Perbarui konfigurasi logging Anda untuk menggunakan akhiran default lagi: `AWSLogs/{account-id}/CloudFront` 
Untuk informasi selengkapnya, lihat [Izin](#permissions-standard-logging).

## Hapus file log
<a name="standard-logs-v2-delete"></a>

CloudFront tidak secara otomatis menghapus file log dari tujuan Anda. Untuk informasi tentang menghapus file log, lihat topik berikut:

**Amazon S3**
+ [Menghapus objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html) di *Panduan Pengguna Konsol Layanan Penyimpanan Sederhana Amazon*

**CloudWatch Log**
+ [Bekerja dengan grup log dan aliran log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) di *Panduan Pengguna Amazon CloudWatch Logs*
+ [DeleteLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html)di *Referensi API Amazon CloudWatch Logs*

**Firehouse**
+ [DeleteDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DeleteDeliveryStream.html)di Referensi *API Firehose Data Amazon*

## Harga
<a name="pricing-standard-logs"></a>

CloudFront tidak mengenakan biaya untuk mengaktifkan log standar. Namun, Anda dapat dikenakan biaya untuk pengiriman, konsumsi, penyimpanan, atau akses, tergantung pada tujuan pengiriman log yang Anda pilih. Untuk informasi selengkapnya, lihat [Harga CloudWatch Log Amazon](https://aws.amazon.com/cloudwatch/pricing/). Di bawah **Tingkat Berbayar**, pilih tab **Log**, lalu di bawah **Log Terjual**, lihat informasi untuk setiap tujuan pengiriman.

Untuk informasi selengkapnya tentang harga untuk masing-masing Layanan AWS, lihat topik berikut:
+ [Harga Amazon CloudWatch Log](https://aws.amazon.com/cloudwatch/pricing/)
+ [Harga Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/pricing/)
+ [Harga Amazon S3](https://aws.amazon.com/s3/pricing/) 
**catatan**  
Tidak ada biaya tambahan untuk pengiriman log ke Amazon S3, meskipun Anda dikenakan biaya Amazon S3 untuk menyimpan dan mengakses file log. Jika Anda mengaktifkan opsi **Parket** untuk mengonversi log akses Anda ke Apache Parquet, opsi ini dikenakan biaya. CloudWatch Untuk informasi selengkapnya, lihat [bagian Vended Logs untuk CloudWatch harga](https://aws.amazon.com/cloudwatch/pricing/).

# Mengonfigurasikan pencatatan standar (lama)
<a name="standard-logging-legacy-s3"></a>

**Catatan**  
Topik ini untuk versi logging standar sebelumnya. Untuk versi terbaru, lihat[Mengonfigurasikan pencatatan standar (v2)](standard-logging.md).
Jika Anda sudah mengaktifkan pencatatan standar (lama) dan ingin mengaktifkan pencatatan standar (v2) ke Amazon S3, sebaiknya tentukan bucket Amazon S3 *yang* berbeda atau gunakan jalur *terpisah di bucket yang* sama (misalnya, gunakan awalan log atau partisi). Ini membantu Anda melacak file log mana yang terkait dengan distribusi mana dan mencegah file log saling menimpa.

Untuk memulai dengan logging standar (legacy), selesaikan langkah-langkah berikut:

1. Pilih bucket Amazon S3 yang akan menerima log Anda dan tambahkan izin yang diperlukan.

1. Konfigurasikan logging standar (legacy) dari CloudFront konsol atau CloudFront API. Anda hanya dapat memilih bucket Amazon S3 untuk menerima log Anda.

1. Lihat log akses Anda.

## Pilih bucket Amazon S3 untuk log standar
<a name="access-logs-choosing-s3-bucket"></a>

Saat Anda mengaktifkan pencatatan untuk distribusi, Anda menentukan bucket Amazon S3 yang Anda inginkan CloudFront untuk menyimpan file log. Jika Anda menggunakan Amazon S3 sebagai asal Anda, sebaiknya gunakan bucket *terpisah* untuk file log Anda.

Tentukan bucket Amazon S3 tempat Anda CloudFront ingin menyimpan log akses, misalnya,. `amzn-s3-demo-bucket.s3.amazonaws.com`

Anda dapat menyimpan file log untuk beberapa distribusi dalam buket yang sama. Saat Anda mengaktifkan log, Anda dapat menentukan prefiks opsional untuk nama file, sehingga Anda dapat terus melacak file log yang terkait dengan distribusi yang mana.

**Tentang memilih ember S3**  
Bucket Anda harus mengaktifkan daftar kontrol akses (ACL). Jika Anda memilih bucket tanpa ACL diaktifkan dari CloudFront konsol, pesan kesalahan akan muncul. Lihat [Izin](#AccessLogsBucketAndFileOwnership).
Jangan memilih bucket Amazon S3 dengan [Kepemilikan Objek S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) yang disetel ke pemilik **bucket** yang diberlakukan. Pengaturan itu dinonaktifkan ACLs untuk ember dan objek di dalamnya, yang CloudFront mencegah pengiriman file log ke ember.
Pencatatan lama tidak mendukung bucket Amazon S3 di wilayah keikutsertaan. Silakan pilih wilayah yang diaktifkan secara default atau gunakan [Standard Logging V2](standard-logging.md) yang mendukung wilayah keikutsertaan dan fitur tambahan. Untuk daftar wilayah default dan opt-in, lihat [Wilayah AWS](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html).

## Izin
<a name="AccessLogsBucketAndFileOwnership"></a>

**penting**  
Mulai April 2023, Anda harus mengaktifkan S3 ACLs untuk bucket S3 baru yang digunakan untuk log standar. CloudFront Anda dapat mengaktifkan ACLs saat [membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-new-bucket.html), atau mengaktifkan [bucket ACLs yang sudah ada](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html).  
*Untuk informasi selengkapnya tentang perubahan, lihat [Pengaturan default untuk bucket S3 baru FAQ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-faq.html) di *Panduan Pengguna Amazon Simple Storage Service* dan [Heads-Up: Perubahan Keamanan Amazon S3 Akan Datang pada bulan April 2023 di Blog](https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/) Berita.AWS *

Anda Akun AWS harus memiliki izin berikut untuk bucket yang Anda tentukan untuk file log:
+ ACL untuk ember harus memberi Anda`FULL_CONTROL`. Jika Anda adalah pemilik bucket, akun Anda memiliki izin ini secara default. Jika tidak, pemilik keranjang harus memperbarui ACL untuk buket.
+ `s3:GetBucketAcl`
+ `s3:PutBucketAcl`

**ACL untuk buket**  
Saat Anda membuat atau memperbarui distribusi dan mengaktifkan pencatatan, CloudFront gunakan izin ini untuk memperbarui ACL untuk bucket guna memberikan izin `awslogsdelivery` akun`FULL_CONTROL`. `awslogsdelivery` akun menulis file log ke dalam buket. Jika akun Anda tidak memiliki izin yang diperlukan untuk memperbarui ACL, membuat atau memperbarui distribusi akan gagal.  
Dalam beberapa keadaan, jika Anda secara program mengirimkan permintaan untuk membuat buket tetapi buket dengan nama yang ditentukan sudah ada, S3 mengatur ulang izin pada buket ke nilai default. Jika Anda mengonfigurasi CloudFront untuk menyimpan log akses di bucket S3 dan Anda berhenti mendapatkan log di bucket itu, periksa izin di bucket untuk memastikan bahwa CloudFront memiliki izin yang diperlukan.

**Memulihkan ACL untuk ember**  
Jika Anda menghapus izin untuk `awslogsdelivery` pelanggan, CloudFront tidak akan dapat menyimpan log ke buket S3. Untuk mengaktifkan CloudFront untuk mulai menyimpan log untuk distribusi Anda lagi, pulihkan izin ACL dengan melakukan salah satu hal berikut:  
+ Nonaktifkan pencatatan untuk distribusi Anda CloudFront, lalu aktifkan lagi. Untuk informasi selengkapnya, lihat [Pencatatan standar](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff).
+ Tambahkan izin ACL untuk `awslogsdelivery` secara manual dengan menavigasi ke bucket S3 di konsol Amazon S3 dan menambahkan izin. Untuk menambahkan ACL untuk `awslogsdelivery`, Anda harus memberikan ID kanonik untuk akun tersebut, yang merupakan di Wilayah Tiongkok:

  `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0`

  

  Untuk informasi selengkapnya tentang menambahkan ACLs ke bucket S3, lihat [Mengonfigurasi ACLs di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) Pengguna *Layanan Penyimpanan Sederhana Amazon*.

**ACL untuk setiap file log**  
Selain ACL pada buket, ada ACL pada setiap file log. Pemilik keranjang memiliki `FULL_CONTROL` izin di setiap file log, pemilik distribusi (jika berbeda dari pemilik bucket) tidak memiliki izin, dan `awslogsdelivery` akun memiliki izin baca dan tulis. 

**Menonaktifkan log**  
Jika Anda menonaktifkan logging, CloudFront tidak menghapus baik ACLs untuk bucket atau file log. Anda dapat menghapus ACLs jika diperlukan.

### Kebijakan kunci yang diperlukan untuk bucket SSE-KMS
<a name="AccessLogsKMSPermissions"></a>

Jika bucket S3 untuk log standar Anda menggunakan enkripsi sisi server dengan AWS KMS keys (SSE-KMS) dengan menggunakan kunci terkelola pelanggan, Anda harus menambahkan pernyataan berikut ke kebijakan kunci untuk kunci terkelola pelanggan Anda. Hal ini memungkinkan CloudFront untuk menulis file log ke bucket. Anda tidak dapat menggunakan SSE-KMS dengan Kunci yang dikelola AWS karena CloudFront tidak akan dapat menulis file log ke ember.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

Jika bucket S3 untuk log standar Anda menggunakan SSE-KMS dengan [Kunci Bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html), Anda juga perlu menambahkan `kms:Decrypt` izin ke pernyataan kebijakan. Dalam hal ini, pernyataan kebijakan penuh terlihat seperti berikut ini.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

**catatan**  
Saat Anda mengaktifkan SSE-KMS untuk bucket S3 Anda, tentukan ARN lengkap untuk kunci yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Menentukan enkripsi sisi server dengan AWS KMS keys (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html) di Panduan Pengguna Layanan Penyimpanan Sederhana *Amazon*.

## Aktifkan pencatatan standar (lama)
<a name="standard-logs-legacy-enable"></a>

Untuk mengaktifkan log standar, gunakan CloudFront konsol atau CloudFront API.

**Contents**
+ [Aktifkan pencatatan standar (lama) (CloudFront konsol)](#standard-logs-legacy-enable-console)
+ [Aktifkan pencatatan standar (lama) (CloudFront API)](#standard-logs-legacy-enable-api)

### Aktifkan pencatatan standar (lama) (CloudFront konsol)
<a name="standard-logs-legacy-enable-console"></a>

**Untuk mengaktifkan log standar untuk CloudFront distribusi (konsol)**

1. Gunakan CloudFront konsol untuk membuat [distribusi baru](distribution-web-creating-console.md) atau [memperbarui yang sudah ada](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure).

1. Untuk bagian **Pencatatan standar**, untuk **pengiriman Log**, pilih **Aktif**.

1. **(Opsional) Untuk **pencatatan Cookie**, pilih Aktif jika Anda ingin menyertakan cookie di log Anda.** Untuk informasi selengkapnya, lihat [Pencatatan cookie](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging).
**Tip**  
Cookie logging adalah pengaturan global yang berlaku untuk *semua* log standar untuk distribusi Anda. Anda tidak dapat mengganti pengaturan ini untuk tujuan pengiriman terpisah.

1. Untuk bagian **Kirim ke**, tentukan **Amazon S3 (Legacy)**.

1. Tentukan bucket Amazon S3 Anda. Jika Anda belum memilikinya, Anda dapat memilih **Buat** atau melihat dokumentasi untuk [membuat ember](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

1. (Opsional) Untuk **awalan Log**, tentukan string, jika ada, yang ingin Anda awalan CloudFront ke nama file log akses untuk distribusi ini, misalnya,. `exampleprefix/` The trailing slash ( / ) adalah opsional tetapi dianjurkan untuk menyederhanakan browsing file log Anda. Untuk informasi selengkapnya, lihat [Awalan log](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix).

1. Selesaikan langkah-langkah untuk memperbarui atau membuat distribusi Anda.

1. Dari halaman **Log**, verifikasi bahwa status log standar **Diaktifkan** di sebelah distribusi.

   Untuk informasi selengkapnya tentang pengiriman logging standar dan bidang log, lihat[Referensi logging standar](standard-logs-reference.md).

### Aktifkan pencatatan standar (lama) (CloudFront API)
<a name="standard-logs-legacy-enable-api"></a>

Anda juga dapat menggunakan CloudFront API untuk mengaktifkan log standar untuk distribusi Anda. 

**Untuk mengaktifkan log standar untuk distribusi (CloudFront API)**
+ Gunakan operasi [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)atau [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)API dan konfigurasikan [LoggingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_LoggingConfig.html)objek.

## Edit pengaturan logging standar
<a name="ChangeSettings"></a>

Anda dapat mengaktifkan atau menonaktifkan logging, mengubah bucket Amazon S3 tempat log Anda disimpan, dan mengubah awalan untuk file log menggunakan [CloudFront konsol atau API](https://console.aws.amazon.com/cloudfront/v4/home). CloudFront Perubahan Anda pada pengaturan log mulai berlaku dalam 12 jam.

Untuk informasi selengkapnya, lihat topik berikut:
+ Untuk memperbarui distribusi menggunakan CloudFront konsol, lihat[Perbarui distribusi](HowToUpdateDistribution.md).
+ Untuk memperbarui distribusi menggunakan CloudFront API, lihat [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)di *Referensi Amazon CloudFront API*.

## Mengirim log ke Amazon S3
<a name="standard-logs-in-s3"></a>

Saat Anda mengirim log ke Amazon S3, log Anda muncul dalam format berikut.

### Format nama file
<a name="AccessLogsFileNaming"></a>

Nama setiap file log yang CloudFront disimpan di bucket Amazon S3 Anda menggunakan format nama file berikut:

`<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz`

Tanggal dan waktu berada dalam Waktu Universal Terkoordinasi (UTC).

Misalnya, jika Anda menggunakan `example-prefix` karena prefiks, dan ID distribusi Anda adalah `EMLARXS9EXAMPLE`, nama file Anda terlihat mirip dengan ini:

`example-prefix/EMLARXS9EXAMPLE.2019-11-14-20.RT4KCN4SGK9.gz`

Saat Anda mengaktifkan pencatatan untuk distribusi, Anda dapat menentukan prefiks opsional untuk nama file, sehingga Anda dapat melacak file log yang terkait dengan distribusi mana. Jika Anda menyertakan nilai untuk awalan file log dan awalan Anda tidak diakhiri dengan garis miring (`/`), CloudFront tambahkan satu secara otomatis. Jika awalan Anda diakhiri dengan garis miring ke depan, jangan CloudFront tambahkan yang lain.

`.gz`Di akhir nama file menunjukkan bahwa CloudFront telah dikompresi file log menggunakan gzip.

## Format file log standar
<a name="LogFileFormat"></a>

Setiap entri dalam file log memberikan detail tentang permintaan penampil tunggal. File log memiliki karakteristik sebagai berikut:
+ Gunakan [Format file log yang diperluas W3C](https://www.w3.org/TR/WD-logfile.html).
+ Berisi nilai yang dipisahkan dengan tab.
+ Berisi catatan yang tidak selalu kronologis.
+ Berisi dua baris header: satu dengan versi format file, dan satu lagi yang mencantumkan kolom W3C yang disertakan dalam setiap catatan.
+ Berisi URL berkode setara untuk spasi dan karakter tertentu lainnya dalam nilai kolom.

  Ekuivalen berkode URL digunakan untuk karakter berikut ini:
  + Kode karakter ASCII 0 melalui 32, inklusif
  + Kode karakter ASCII 127 dan lebih tinggi
  + Semua karakter dalam tabel berikut

  Standar pengkodean URL ditetapkan dalam [RFC 1738](https://tools.ietf.org/html/rfc1738.html).


|  Nilai yang dikodekan URL  |  Karakter  | 
| --- | --- | 
|  %3C  |  <  | 
|  %3E  |  >  | 
|  %22  |  "  | 
|  %23  |  \$1  | 
|  %25  |  %  | 
|  %7B  |  \$1  | 
|  %7D  |  \$1  | 
|  %7C  |  \$1  | 
|  %5C  |  \$1  | 
|  %5E  |  ^  | 
|  %7E  |  \$1  | 
|  %5B  |  [  | 
|  %5D  |  ]  | 
|  %60  |  `  | 
|  %27  |  '  | 
|  %20  |  yang lebih besar  | 

## Hapus file log
<a name="DeletingLogFiles"></a>

CloudFront tidak secara otomatis menghapus file log dari bucket Amazon S3 Anda. Untuk informasi tentang menghapus file log dari bucket Amazon S3, [lihat Menghapus](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html) objek di Panduan Pengguna Konsol *Layanan Penyimpanan Sederhana Amazon*.

## Harga
<a name="AccessLogsCharges"></a>

Pencatatan standar adalah fitur opsional dari CloudFront. CloudFront tidak mengenakan biaya untuk mengaktifkan log standar. Namun, Anda memperoleh biaya Amazon S3 biasa untuk menyimpan dan mengakses file di Amazon S3. Anda dapat menghapusnya kapan saja.

Untuk informasi selengkapnya tentang harga Amazon S3, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

Untuk informasi selengkapnya tentang CloudFront harga, lihat [CloudFront Harga](https://aws.amazon.com/cloudfront/pricing/).

# Referensi logging standar
<a name="standard-logs-reference"></a>

Bagian berikut berlaku untuk logging standar (v2) dan logging standar (legacy).

**Topics**
+ [Waktu pengiriman file log](#access-logs-timing)
+ [Bagaimana permintaan dicatat saat URL atau header permintaan melebihi ukuran maksimum](#access-logs-request-URL-size)
+ [Bidang file log](#BasicDistributionFileFormat)
+ [Menganalisis log](#access-logs-analyzing)

## Waktu pengiriman file log
<a name="access-logs-timing"></a>

CloudFront mengirimkan log untuk distribusi hingga beberapa kali dalam satu jam. Secara umum, file log berisi informasi tentang permintaan yang CloudFront diterima selama periode waktu tertentu. CloudFront biasanya mengirimkan file log untuk periode waktu tersebut ke tujuan Anda dalam waktu satu jam dari peristiwa yang muncul di log. Namun, perhatikan bahwa beberapa atau semua entri file log untuk periode waktu terkadang dapat tertunda hingga 24 jam. Ketika entri log tertunda, CloudFront simpan dalam file log yang nama file termasuk tanggal dan waktu periode di mana permintaan *terjadi*, bukan tanggal dan waktu ketika file dikirim.

Saat membuat file log, CloudFront konsolidasikan informasi untuk distribusi Anda dari semua lokasi tepi yang menerima permintaan untuk objek Anda selama periode waktu yang dicakup oleh file log.

CloudFront dapat menyimpan lebih dari satu file untuk jangka waktu tergantung pada berapa banyak permintaan yang CloudFront diterima untuk objek yang terkait dengan distribusi.

CloudFront mulai mengirimkan log akses dengan andal sekitar empat jam setelah Anda mengaktifkan pencatatan. Anda mungkin mendapatkan beberapa log akses sebelum waktu tersebut.

**catatan**  
Jika tidak ada pengguna yang meminta objek Anda selama periode waktu tersebut, Anda tidak akan menerima file log untuk periode tersebut.

## Bagaimana permintaan dicatat saat URL atau header permintaan melebihi ukuran maksimum
<a name="access-logs-request-URL-size"></a>

Jika ukuran total semua header permintaan, termasuk cookie, melebihi 20 KB, atau jika URL melampaui 8192 byte, CloudFront tidak dapat menguraikan permintaan sepenuhnya dan tidak dapat mencatatnya. Karena permintaan tersebut tidak dicatat, Anda tidak akan melihat kode status kesalahan HTTP kembali.

Jika badan permintaan melebihi ukuran maksimum, permintaan akan dicatat, termasuk kode status kesalahan HTTP.

## Bidang file log
<a name="BasicDistributionFileFormat"></a>

File log untuk distribusi berisi 33 bidang. Daftar berikut berisi setiap nama kolom, secara berurutan, bersama dengan deskripsi informasi di bidang tersebut.

1. **`date`**

   Tanggal di mana peristiwa terjadi dalam format `YYYY-MM-DD`. Misalnya, `2019-06-30`. Tanggal dan waktu berada dalam Waktu Universal Terkoordinasi (UTC). Untuk WebSocket koneksi, ini adalah tanggal ketika koneksi ditutup.

1. **`time`**

   Waktu ketika CloudFront server selesai menanggapi permintaan (dalam UTC), misalnya,. `01:42:39` Untuk WebSocket koneksi, ini adalah waktu ketika koneksi ditutup.

1. **`x-edge-location`**

   Lokasi tepi yang melayani permintaan. Setiap lokasi tepi diidentifikasi oleh kode tiga huruf dan nomor yang ditetapkan secara sewenang-wenang (misalnya, DFW3). Kode tiga huruf biasanya sesuai dengan kode bandara International Air Transport Association (IATA) untuk bandara di dekat lokasi geografis lokasi tepi. (Ringkasan ini mungkin berubah di masa mendatang.)

1. **`sc-bytes`**

   Jumlah total byte yang dikirim server ke penampil sebagai respons terhadap permintaan, termasuk header. Untuk WebSocket dan koneksi gRPC, ini adalah jumlah total byte yang dikirim dari server ke klien melalui koneksi.

1. **`c-ip`**

   Alamat IP penampil yang membuat permintaan, misalnya, `192.0.2.183` atau `2001:0db8:85a3::8a2e:0370:7334`. Jika penampil menggunakan proksi HTTP atau penyeimbang beban untuk mengirim permintaan, nilai bidang ini adalah alamat IP dari perantara atau penyeimbang beban. Lihat juga `x-forwarded-for` bidang.

1. **`cs-method`**

   Metode permintaan HTTP yang diterima dari penampil.

1. **`cs(Host)`**

   Nama domain CloudFront distribusi (misalnya, d111111abcdef8.cloudfront.net).

1. **`cs-uri-stem`**

   Bagian URL permintaan yang mengidentifikasi jalur dan objek (misalnya, `/images/cat.jpg`). Tanda tanya (?) dalam URLs dan string kueri tidak termasuk dalam log.

1. **`sc-status`**

   Berisi salah satu nilai berikut:
   + Kode status HTTP dari respon server (misalnya,`200`).
   + `000`, yang menunjukkan bahwa penampil menutup koneksi sebelum server dapat merespons permintaan. Jika penampil menutup koneksi setelah server mulai mengirim respons, bidang ini berisi kode status HTTP dari respons yang mulai dikirim server.

1. **`cs(Referer)`**

   Nilai dari `Referer` header dalam permintaan. Ini adalah nama domain yang membuat permintaan. Perujuk umum termasuk mesin pencari, situs web lain yang terhubung langsung ke objek Anda, dan situs web Anda sendiri.

1. **`cs(User-Agent)`**

   Nilai dari `User-Agent` header dalam permintaan. `User-Agent` header mengidentifikasi sumber permintaan, seperti jenis perangkat dan peramban yang mengirimkan permintaan atau, jika permintaan berasal dari mesin pencari, mesin pencari mana.

1. **`cs-uri-query`**

   Bagian utas kueri URL permintaan, jika ada.

   Ketika URL tidak berisi string kueri, nilai bidang ini adalah tanda hubung (-). Untuk informasi selengkapnya, lihat [Konten cache berdasarkan parameter string kueri](QueryStringParameters.md).

1. **`cs(Cookie)`**

   `Cookie` header dalam permintaan, termasuk nama—pasangan nilai dan atribut terkait.

   Jika Anda mengaktifkan pencatatan cookie, CloudFront catat cookie di semua permintaan terlepas dari cookie mana yang Anda pilih untuk diteruskan ke asal. Ketika permintaan tidak menyertakan header cookie, nilai bidang ini adalah tanda hubung (-). Untuk informasi selengkapnya tentang cookie, lihat [Konten cache berdasarkan cookie](Cookies.md).

1. **`x-edge-result-type`**

   Bagaimana server menggolongkan respons setelah byte terakhir meninggalkan server. Dalam beberapa kasus, jenis hasil dapat berubah antara waktu saat server siap mengirimkan respons dan waktu saat server selesai mengirimkan respons. Lihat juga `x-edge-response-result-type` bidang.

   Misalnya, dalam streaming HTTP, seandainya server menemukan segmen aliran di cache. Dalam skenario itu, nilai kolom ini biasanya adalah `Hit`. Namun, jika penampil menutup koneksi sebelum server mengirimkan seluruh segmen, jenis hasil akhir (dan nilai kolom ini) adalah `Error`.

   WebSocket dan koneksi gRPC akan memiliki nilai `Miss` untuk bidang ini karena kontennya tidak dapat di-cache dan diproksi langsung ke asal.

   Nilai yang mungkin termasuk:
   + `Hit` – Server melayani objek ke penampil dari cache.
   + `RefreshHit` – Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut.
   + `Miss` – Permintaan tidak dapat dipenuhi oleh objek di dalam cache, sehingga server meneruskan permintaan ke asal dan mengembalikan hasil ke penampil.
   + `LimitExceeded`— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui.
   + `CapacityExceeded`Server mengembalikan kode status HTTP 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek.
   + `Error` – Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilai `sc-status` bidang ada di `4xx` atau kesalahan server (nilai `sc-status` bidang ada di `5xx` beragam). Jika nilai `sc-status` adalah `200`, atau jika nilai bidang ini adalah `Error` dan nilai dari `x-edge-response-result-type` bidang tidak `Error`, artinya permintaan HTTP berhasil tetapi klien terputus sebelum menerima semua byte.
   + `Redirect` – Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
   + `LambdaExecutionError`— Fungsi Lambda @Edge yang terkait dengan distribusi tidak selesai karena asosiasi yang salah bentuk, batas waktu fungsi, masalah AWS ketergantungan, atau masalah ketersediaan umum lainnya.

1. **`x-edge-request-id`**

   String buram yang secara unik mengidentifikasi permintaan. CloudFront juga mengirimkan string ini di header `x-amz-cf-id` respons.

1. **`x-host-header`**

   Nilai yang disertakan oleh penampil dalam `Host` header permintaan. Jika Anda menggunakan nama CloudFront domain di objek Anda URLs (seperti d111111abcdef8.cloudfront.net), bidang ini berisi nama domain tersebut. Jika Anda menggunakan nama domain alternatif (CNAMEs) di objek Anda URLs (seperti www.example.com), bidang ini berisi nama domain alternatif.

   Jika Anda menggunakan nama domain alternatif, lihat `cs(Host)` di bidang 7 untuk nama domain yang terkait dengan distribusi Anda.

1. **`cs-protocol`**

   Protokol permintaan pemirsa (`http`,`https`,`grpcs`,`ws`, atau`wss`).

1. **`cs-bytes`**

   Jumlah total byte data yang disertakan oleh penampil, termasuk header. Untuk WebSocket dan koneksi gRPC, ini adalah jumlah total byte yang dikirim dari klien ke server pada koneksi.

1. **`time-taken`**

   Jumlah detik (hingga seperseribu detik, misalnya, 0,082) dari saat server menerima permintaan penampil hingga saat server menulis byte terakhir dari respons ke antrian output, yang diukur pada server. Dari perspektif penampil, total waktu untuk mendapatkan respons penuh akan lebih lama dari nilai ini karena latensi jaringan dan buffering TCP.

1. **`x-forwarded-for`**

   Jika penampil menggunakan proksi HTTP atau timbangantor beban untuk mengirim permintaan, nilai `c-ip` adalah alamat IP dari perantara atau pemukul beban. Dalam hal ini, bidang ini adalah alamat IP penampil yang memulai permintaan. Bidang ini dapat berisi beberapa alamat IP yang dipisahkan koma. Setiap alamat IP dapat berupa IPv4 alamat (misalnya,`192.0.2.183`) atau IPv6 alamat (misalnya,`2001:0db8:85a3::8a2e:0370:7334`).

   Jika penampil tidak menggunakan proksi HTTP atau penyeimbang beban, nilai bidang ini adalah tanda hubung (-).

1. **`ssl-protocol`**

   Ketika permintaan menggunakan HTTPS, bidang ini berisi SSL/TLS protokol yang dinegosiasikan oleh penampil dan server untuk mentransmisikan permintaan dan respons. Untuk daftar nilai yang mungkin, lihat SSL/TLS protokol yang didukung di. [Protokol dan sandi yang didukung antara pemirsa dan CloudFront](secure-connections-supported-viewer-protocols-ciphers.md)

   Saat `cs-protocol` di kolom 17 adalah `http`, nilai untuk kolom ini adalah tanda hubung (-).

1. **`ssl-cipher`**

   Ketika permintaan menggunakan HTTPS, bidang ini berisi SSL/TLS cipher yang dinegosiasikan oleh penampil dan server untuk mengenkripsi permintaan dan respons. Untuk daftar nilai yang mungkin, lihat SSL/TLS cipher yang didukung di. [Protokol dan sandi yang didukung antara pemirsa dan CloudFront](secure-connections-supported-viewer-protocols-ciphers.md)

   Saat `cs-protocol` di kolom 17 adalah `http`, nilai untuk kolom ini adalah tanda hubung (-).

1. **`x-edge-response-result-type`**

   Bagaimana server mengklasifikasikan respons tepat sebelum mengembalikan respons ke penampil. Lihat juga `x-edge-result-type` bidang. Nilai yang mungkin termasuk:
   + `Hit` – Server melayani objek ke penampil dari cache.
   + `RefreshHit` – Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut.
   + `Miss` – Permintaan tidak dapat dipenuhi oleh objek dalam cache, sehingga server meneruskan permintaan ke server asal dan mengembalikan hasil ke penampil.
   + `LimitExceeded`— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui.
   + `CapacityExceeded`— Server mengembalikan kesalahan 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek.
   + `Error` – Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilai `sc-status` bidang ada di `4xx` atau kesalahan server (nilai `sc-status` bidang ada di `5xx` beragam).

     Jika nilai `x-edge-result-type` adalah `Error` dan nilai bidang ini tidak `Error`, klien terputus sebelum menyelesaikan unduhan.
   + `Redirect` – Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
   + `LambdaExecutionError`— Fungsi Lambda @Edge yang terkait dengan distribusi tidak selesai karena asosiasi yang salah bentuk, batas waktu fungsi, masalah AWS ketergantungan, atau masalah ketersediaan umum lainnya.

1. **`cs-protocol-version`**

   Versi HTTP yang ditentukan penampil dalam permintaan. Nilai yang mungkin termasuk adalah `HTTP/0.9`, `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0`, dan `HTTP/3.0`.

1. **`fle-status`**

   Saat [enkripsi tingkat lapangan](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html) dikonfigurasi untuk distribusi, bidang ini berisi kode yang menunjukkan apakah badan permintaan berhasil diproses. Ketika server berhasil memproses isi permintaan, mengenkripsi nilai dalam bidang yang ditentukan, dan meneruskan permintaan ke asal, nilai bidang ini adalah `Processed`. Nilai dari `x-edge-result-type` masih dapat menunjukkan kesalahan sisi klien atau sisi server dalam kasus ini.

   Nilai yang mungkin untuk kolom ini meliputi:
   + `ForwardedByContentType` – Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada jenis konten yang dikonfigurasi.
   + `ForwardedByQueryArgs`— Server meneruskan permintaan ke asal tanpa parsing atau enkripsi karena permintaan berisi argumen kueri yang tidak ada dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `ForwardedDueToNoProfile` – Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada profil yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `MalformedContentTypeClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena nilai `Content-Type` header dalam format yang tidak valid.
   + `MalformedInputClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena bodi permintaan dalam format yang tidak valid.
   + `MalformedQueryArgsClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena argumen kueri kosong atau dalam format yang tidak valid.
   + `RejectedByContentType` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada jenis konten yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `RejectedByQueryArgs` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada alasan kueri yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `ServerError` – Server asal mengembalikan kesalahan.

   Jika permintaan melebihi kuota enkripsi tingkat lapangan (sebelumnya disebut sebagai batas), bidang ini berisi salah satu kode kesalahan berikut, dan server mengembalikan kode status HTTP 400 ke penampil. Untuk daftar kuota saat ini pada enkripsi tingkat lapangan, lihat [Kuotas pada enkripsi tingkat lapangan](cloudfront-limits.md#limits-field-level-encryption).
   + `FieldLengthLimitClientError` – Kolom yang dikonfigurasi untuk dienkripsi melebihi panjang maksimum yang diizinkan.
   + `FieldNumberLimitClientError` – Permintaan agar distribusi dikonfigurasi untuk mengenkripsi berisi lebih dari jumlah kolom yang diperbolehkan.
   + `RequestLengthLimitClientError` – Panjang badan permintaan melebihi panjang maksimum yang diperbolehkan ketika enkripsi tingkat lapangan dikonfigurasi.

   Jika enkripsi tingkat bidang tidak dikonfigurasi untuk distribusi, nilai bidang ini adalah tanda hubung (-).

1. **`fle-encrypted-fields`**

   Jumlah bidang [enkripsi tingkat lapangan yang dienkripsi](field-level-encryption.md) dan diteruskan oleh server ke asal. CloudFront server mengalirkan permintaan yang diproses ke asal saat mereka mengenkripsi data, sehingga bidang ini dapat memiliki nilai meskipun nilainya `fle-status` adalah kesalahan.

   Jika enkripsi tingkat bidang tidak dikonfigurasi untuk distribusi, nilai bidang ini adalah tanda hubung (-).

1. **`c-port`**

   Nomor port permintaan dari penampil.

1. **`time-to-first-byte`**

   Jumlah detik antara menerima permintaan dan menulis byte pertama respons, sebagaimana diukur pada server.

1. **`x-edge-detailed-result-type`**

   Bidang ini berisi nilai yang sama dengan `x-edge-result-type` bidang, kecuali dalam kasus berikut:
   + Ketika objek disajikan ke penampil dari lapisan [Origin Shield](origin-shield.md), bidang ini berisi`OriginShieldHit`.
   + Ketika objek tidak dalam CloudFront cache dan respons dihasilkan oleh [permintaan asal fungsi Lambda @Edge](lambda-at-the-edge.md), bidang ini berisi. `MissGeneratedResponse`
   + Ketika nilai bidang adalah`Error`, `x-edge-result-type` bidang ini berisi salah satu nilai berikut dengan informasi lebih lanjut tentang kesalahan:
     + `AbortedOrigin` – Server mengalami masalah dengan asal usul.
     + `ClientCommError` – Respons ke penampil terganggu karena masalah komunikasi antara server dan penampil.
     + `ClientGeoBlocked`— Distribusi dikonfigurasi untuk menolak permintaan dari lokasi geografis pemirsa.
     + `ClientHungUpRequest` – Penampil berhenti sebelum waktunya saat mengirim permintaan.
     + `Error`— Terjadi kesalahan yang jenis kesalahannya tidak sesuai dengan kategori lainnya. Jenis kesalahan ini dapat terjadi saat server menjalankan respons kesalahan dari cache.
     + `InvalidRequest` – Server menerima permintaan yang tidak valid dari penampil.
     + `InvalidRequestBlocked` – Akses ke sumber daya yang diminta diblokir.
     + `InvalidRequestCertificate`— Distribusi tidak cocok dengan SSL/TLS sertifikat tempat koneksi HTTPS dibuat.
     + `InvalidRequestHeader` Permintaan mengandung header yang tidak valid.
     + `InvalidRequestMethod` – Distribusi tidak dikonfigurasi untuk menangani metode permintaan HTTP yang digunakan. Ini dapat terjadi ketika distribusi hanya mendukung permintaan yang dapat disimpan.
     + `OriginCommError`— Permintaan habis waktu saat menghubungkan ke asal, atau membaca data dari asal.
     + `OriginConnectError`— Server tidak dapat terhubung ke asal.
     + `OriginContentRangeLengthError`— `Content-Length` Header dalam respons asal tidak cocok dengan panjang di `Content-Range` header.
     + `OriginDnsError`— Server tidak dapat menyelesaikan nama domain asal.
     + `OriginError` - Asal memberikan jawaban yang salah.
     + `OriginHeaderTooBigError` – Header yang dikembalikan oleh asalnya terlalu besar untuk diproses oleh server edge.
     + `OriginInvalidResponseError` – Asal memberikan respons tidak valid.
     + `OriginReadError`— Server tidak bisa membaca dari asalnya.
     + `OriginWriteError`— Server tidak bisa menulis ke asal.
     + `OriginZeroSizeObjectError` – Objek seukuran nol yang dikirim dari sumber mengakibatkan kesalahan.
     + `SlowReaderOriginError` – Penampil lambat untuk membaca pesan yang menyebabkan kesalahan asal.

1. **`sc-content-type`**

   Nilai HTTP `Content-Type` header respons.

1. **`sc-content-len`**

   Nilai HTTP `Content-Length` header respons.

1. **`sc-range-start`**

   Saat tanggapan berisi HTTP `Content-Range` header, kolom ini berisi nilai mulai rentang.

1. **`sc-range-end`**

   Saat tanggapan berisi HTTP `Content-Range` header, kolom ini berisi nilai akhir rentang.

1. **`distribution-tenant-id`**

   ID penyewa distribusi.

1. **`connection-id`**

   Pengenal unik untuk koneksi TLS. 

   Anda harus mengaktifkan MTL untuk distribusi Anda sebelum Anda bisa mendapatkan informasi untuk bidang ini. Untuk informasi selengkapnya, lihat [Otentikasi TLS timbal balik dengan CloudFront (Viewer mTLS)Asal TLS timbal balik dengan CloudFront](mtls-authentication.md).

   

Berikut ini adalah contoh file log untuk distribusi.

```
#Version: 1.0
#Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version fle-status fle-encrypted-fields c-port time-to-first-byte x-edge-detailed-result-type sc-content-type sc-content-len sc-range-start sc-range-end
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ==	d111111abcdef8.cloudfront.net	https	23	0.001	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.001	Hit	text/html	78	-	-
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	k6WGMNkEzR5BEM_SaF47gjtX9zBDO2m349OY2an0QPEaUum1ZOLrow==	d111111abcdef8.cloudfront.net	https	23	0.000	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.000	Hit	text/html	78	-	-
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	f37nTMVvnKvV2ZSvEsivup_c2kZ7VXzYdjC-GUQZ5qNs-89BlWazbw==	d111111abcdef8.cloudfront.net	https	23	0.001	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.001	Hit	text/html	78	-	-	
2019-12-13	22:36:27	SEA19-C1	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/favicon.ico	502	http://www.example.com/	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Error	1pkpNfBQ39sYMnjjUQjmH2w1wdJnbHYTbag21o_3OfcQgPzdL2RSSQ==	www.example.com	http	675	0.102	-	-	-	Error	HTTP/1.1	-	-	25260	0.102	OriginDnsError	text/html	507	-	-
2019-12-13	22:36:26	SEA19-C1	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/	502	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Error	3AqrZGCnF_g0-5KOvfA7c9XLcf4YGvMFSeFdIetR1N_2y8jSis8Zxg==	www.example.com	http	735	0.107	-	-	-	Error	HTTP/1.1	-	-	3802	0.107	OriginDnsError	text/html	507	-	-
2019-12-13	22:37:02	SEA19-C2	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/	502	-	curl/7.55.1	-	-	Error	kBkDzGnceVtWHqSCqBUqtA_cEs2T3tFUBbnBNkB9El_uVRhHgcZfcw==	www.example.com	http	387	0.103	-	-	-	Error	HTTP/1.1	-	-	12644	0.103	OriginDnsError	text/html	507	-	-
```

## Menganalisis log
<a name="access-logs-analyzing"></a>

Karena Anda dapat menerima beberapa log akses per jam, kami sarankan Anda menggabungkan semua file log yang Anda terima untuk periode waktu tertentu ke dalam satu file. Anda kemudian dapat menganalisis data untuk periode tersebut dengan lebih akurat dan lengkap.

Salah satu cara untuk menganalisis log akses Anda adalah dengan menggunakan [Amazon Athena](https://aws.amazon.com/athena/). Athena adalah layanan kueri interaktif yang dapat membantu Anda menganalisis data untuk AWS layanan, termasuk. CloudFront Untuk mempelajari selengkapnya, lihat [Menanyakan CloudFront Log Amazon](https://docs.aws.amazon.com/athena/latest/ug/cloudfront-logs.html) di Panduan *Pengguna Amazon Athena*.

Selain itu, posting AWS blog berikut membahas beberapa cara untuk menganalisis log akses.
+ [Amazon CloudFront Request Logging](https://aws.amazon.com/blogs/aws/amazon-cloudfront-request-logging/) (untuk konten yang dikirimkan melalui HTTP)
+ [ CloudFront Log yang Ditingkatkan, Sekarang Dengan String Kueri](https://aws.amazon.com/blogs/aws/enhanced-cloudfront-logs-now-with-query-strings/)

# Gunakan log akses waktu nyata
<a name="real-time-logs"></a>

Dengan log akses CloudFront real-time, Anda bisa mendapatkan informasi tentang permintaan yang dibuat ke distribusi secara real time (log dikirimkan dalam hitungan detik setelah menerima permintaan). Anda dapat menggunakan log akses real-time untuk memantau, menganalisis, dan mengambil tindakan berdasarkan kinerja pengiriman konten.

CloudFront log akses real-time dapat dikonfigurasi. Anda dapat memilih:
+ *Rasio pengambilan sampel* untuk log waktu nyata Anda—yaitu, persentase permintaan yang ingin Anda terima catatan log akses real-time.
+ Kolom khusus yang ingin Anda terima di catatan log.
+ Perilaku cache tertentu (pola jalur) yang ingin Anda terima log waktu nyata.

CloudFront log akses real-time dikirimkan ke aliran data pilihan Anda di Amazon Kinesis Data Streams. Anda dapat membangun [konsumen aliran data Kinesis](https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-consumers.html) Anda sendiri, atau menggunakan Amazon Data Firehose untuk mengirim data log ke Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon Service (Service), atau OpenSearch layanan pemrosesan OpenSearch log pihak ketiga.

CloudFront biaya untuk log akses real-time, selain biaya yang Anda keluarkan untuk menggunakan Kinesis Data Streams. Untuk informasi selengkapnya tentang harga, lihat [Amazon CloudFront Harga](https://aws.amazon.com/cloudfront/pricing/) dan [Harga Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/pricing/).

**penting**  
Kami menyarankan Anda menggunakan log untuk memahami sifat permintaan untuk konten Anda, bukan sebagai akuntansi lengkap dari semua permintaan. CloudFront memberikan log akses real-time dengan upaya terbaik. Entri log untuk permintaan tertentu mungkin dikirim dalam waktu lama setelah permintaan diproses secara aktual dan, dalam kasus yang jarang, entri log mungkin tidak dikirimkan sama sekali. Ketika entri log dihilangkan dari log akses real-time, jumlah entri dalam log akses real-time tidak akan cocok dengan penggunaan yang muncul dalam laporan AWS penagihan dan penggunaan.

**Topics**
+ [Membuat dan menggunakan konfigurasi log akses real-time](#create-real-time-log-config)
+ [Memahami konfigurasi log akses real-time](#understand-real-time-log-config)
+ [Membuat konsumen Kinesis Data Streams](#real-time-log-consumer-guidance)
+ [Memecahkan masalah log akses waktu nyata](#real-time-log-troubleshooting)

## Membuat dan menggunakan konfigurasi log akses real-time
<a name="create-real-time-log-config"></a>

Untuk mendapatkan informasi tentang permintaan yang dibuat untuk distribusi secara real time. Anda dapat menggunakan konfigurasi log akses real-time. Log dikirimkan dalam hitungan detik setelah menerima permintaan. Anda dapat membuat konfigurasi log akses real-time di CloudFront konsol, dengan AWS Command Line Interface (AWS CLI), atau dengan CloudFront API.

Untuk menggunakan konfigurasi log akses real-time, Anda melampirkannya ke satu atau beberapa perilaku cache dalam CloudFront distribusi.

------
#### [ Console ]

**Untuk membuat konfigurasi log akses real-time**

1. Masuk ke Konsol Manajemen AWS dan buka halaman **Log** di CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home?#/logs](https://console.aws.amazon.com/cloudfront/v4/home?#/logs).

1. Pilih tab **Konfigurasi waktu nyata**.

1. Pilih **Buat konfigurasi**.

1. Untuk **Nama**, masukkan nama untuk konfigurasi.

1. Untuk **Sampling rate**, masukkan persentase permintaan yang ingin Anda terima catatan log.

1. Untuk **Bidang**, pilih bidang yang akan diterima di log akses real-time.
   + Untuk menyertakan semua [bidang CMCD](#CMCD-real-time-logging-fields) untuk log Anda, pilih **CMCD** semua kunci.

1. Untuk **Endpoint**, pilih satu atau beberapa aliran data Kinesis untuk menerima log akses real-time.
**catatan**  
CloudFront log akses real-time dikirimkan ke aliran data yang Anda tentukan di Kinesis Data Streams. Untuk membaca dan menganalisis log akses real-time Anda, Anda dapat membangun konsumen aliran data Kinesis Anda sendiri. Anda juga dapat menggunakan Firehose untuk mengirim data log ke Amazon S3, Amazon Redshift, OpenSearch Amazon Service, atau layanan pemrosesan log pihak ketiga.

1. Untuk **peran IAM**, pilih **Buat peran layanan baru atau pilih peran** yang ada. Anda harus memiliki izin untuk membuat peran IAM.

1. (Opsional) Untuk **Distribusi**, pilih perilaku CloudFront distribusi dan cache untuk dilampirkan ke konfigurasi log akses real-time.

1. Pilih **Buat konfigurasi**.

Jika berhasil, konsol menampilkan detail konfigurasi log akses real-time yang baru saja Anda buat.

Untuk informasi selengkapnya, lihat [Memahami konfigurasi log akses real-time](#understand-real-time-log-config).

------
#### [ AWS CLI ]

Untuk membuat konfigurasi log akses real-time dengan AWS CLI, gunakan **aws cloudfront create-realtime-log-config** perintah. Anda dapat menggunakan file input untuk memberikan parameter input perintah, daripada menentukan setiap parameter individu sebagai input baris perintah.

**Untuk membuat konfigurasi log akses real-time (CLI dengan file input)**

1. Gunakan perintah berikut untuk membuat file dengan nama `rtl-config.yaml` yang berisi semua parameter input untuk **create-realtime-log-config** perintah.

   ```
   aws cloudfront create-realtime-log-config --generate-cli-skeleton yaml-input > rtl-config.yaml
   ```

1. Buka file dengan nama `rtl-config.yaml` yang baru Anda buat. Edit file untuk menentukan pengaturan konfigurasi log akses real-time yang Anda inginkan, lalu simpan file tersebut. Perhatikan hal-hal berikut:
   + Untuk `StreamType`, satu-satunya nilai valid adalah `Kinesis`.

   Untuk informasi lebih lanjut tentang pengaturan konfigurasi panjang waktu nyata, lihat [Memahami konfigurasi log akses real-time](#understand-real-time-log-config).

1. Gunakan perintah berikut untuk membuat konfigurasi log akses real-time menggunakan parameter input dari `rtl-config.yaml` file.

   ```
   aws cloudfront create-realtime-log-config --cli-input-yaml file://rtl-config.yaml
   ```

Jika berhasil, output perintah menunjukkan rincian konfigurasi log akses real-time yang baru saja Anda buat.

**Untuk melampirkan konfigurasi log akses real-time ke distribusi yang ada (CLI dengan file input)**

1. Gunakan perintah berikut untuk menyimpan konfigurasi distribusi untuk CloudFront distribusi yang ingin Anda perbarui. Ganti *distribution\$1ID* dengan ID distribusi.

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. Buka file dengan nama `dist-config.yaml` yang baru Anda buat. Edit file, buat perubahan berikut pada setiap perilaku cache yang Anda perbarui untuk menggunakan konfigurasi log akses real-time.
   + Dalam perilaku cache, tambahkan kolom bernama `RealtimeLogConfigArn`. Untuk nilai bidang, gunakan ARN konfigurasi log akses real-time yang ingin Anda lampirkan ke perilaku cache ini.
   + Ubah nama `ETag` bidang menjadi`IfMatch`, tetapi jangan ubah nilai bidang.

   Simpan file setelah selesai.

1. Gunakan perintah berikut untuk memperbarui distribusi untuk menggunakan konfigurasi log akses real-time. Ganti *distribution\$1ID* dengan ID distribusi.

   ```
   aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
   ```

Jika berhasil, output perintah menunjukkan rincian distribusi yang baru saja Anda perbarui.

------
#### [ API ]

Untuk membuat konfigurasi log akses real-time dengan CloudFront API, gunakan operasi [CreateRealtimeLogConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateRealtimeLogConfig.html)API. Untuk informasi selengkapnya tentang parameter yang Anda tentukan dalam panggilan API ini, lihat [Memahami konfigurasi log akses real-time](#understand-real-time-log-config) dan dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

Setelah membuat konfigurasi log akses real-time, Anda dapat melampirkannya ke perilaku cache, dengan menggunakan salah satu operasi API berikut:
+ Untuk memasangnya ke perilaku cache dalam distribusi yang ada, gunakan [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html).
+ Untuk memasangnya ke perilaku cache dalam distribusi baru, gunakan [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html).

Untuk kedua operasi API ini, berikan ARN konfigurasi log akses real-time di `RealtimeLogConfigArn` lapangan, di dalam perilaku cache. Untuk informasi selengkapnya tentang bidang lain yang Anda tentukan dalam panggilan API ini, lihat [Semua referensi pengaturan distribusi](distribution-web-values-specify.md) dan dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

------

## Memahami konfigurasi log akses real-time
<a name="understand-real-time-log-config"></a>

Untuk menggunakan log akses CloudFront real-time, Anda mulai dengan membuat konfigurasi log akses real-time. Konfigurasi log akses real-time berisi informasi tentang bidang log mana yang ingin Anda terima, *laju pengambilan sampel* untuk catatan log, dan aliran data Kinesis tempat Anda ingin mengirimkan log.

Secara khusus, konfigurasi log akses real-time berisi pengaturan berikut:

**Contents**
+ [Nama](#real-time-logs-name)
+ [Tingkat pengambilan sampel](#real-time-logs-sampling-rate)
+ [Bidang](#real-time-logs-fields)
+ [Titik Akhir (Kinesis Data Streams)](#real-time-logs-endpoint)
+ [IAM Role](#real-time-logs-IAM)

### Nama
<a name="real-time-logs-name"></a>

Nama untuk mengidentifikasi konfigurasi log akses real-time.

### Tingkat pengambilan sampel
<a name="real-time-logs-sampling-rate"></a>

Laju pengambilan sampel adalah jumlah keseluruhan antara 1 dan 100 (inklusif) yang menentukan persentase permintaan penampil yang dikirim ke Kinesis Data Streams sebagai catatan log akses waktu nyata. Untuk menyertakan setiap permintaan penampil dalam log akses waktu nyata Anda, tentukan 100 untuk laju pengambilan sampel. Anda dapat memilih tingkat pengambilan sampel yang lebih rendah untuk mengurangi biaya saat masih menerima sampel representatif data permintaan dalam log akses waktu nyata Anda.

### Bidang
<a name="real-time-logs-fields"></a>

Daftar bidang yang disertakan dalam setiap catatan log akses real-time. Setiap catatan log dapat berisi hingga 40 kolom, dan Anda dapat memilih untuk menerima semua bidang yang tersedia, atau hanya kolom yang Anda butuhkan untuk memantau dan menganalisis kinerja.

Daftar berikut berisi setiap nama bidang dan deskripsi informasi dalam bidang tersebut. Kolom tercantum dalam urutan tampilannya dalam catatan log yang dikirim ke Stream Data Kinesis.

Fields 46-63 adalah [data klien media umum (CMCD)](#CMCD-real-time-logging-fields) yang dapat dikirim oleh klien media player dengan setiap permintaan. CDNs Anda dapat menggunakan data ini untuk memahami setiap permintaan, seperti jenis media (audio, video), kecepatan pemutaran, dan panjang streaming. Bidang ini hanya akan muncul di log akses real-time Anda jika dikirimkan ke CloudFront. 

1. **`timestamp`**

   Tanggal dan waktu server edge selesai menanggapi permintaan.

1. **`c-ip`**

   Alamat IP penampil yang membuat permintaan, misalnya, `192.0.2.183` atau `2001:0db8:85a3::8a2e:0370:7334`. Jika penampil menggunakan proksi HTTP atau penyeimbang beban untuk mengirim permintaan, nilai bidang ini adalah alamat IP dari perantara atau penyeimbang beban. Lihat juga `x-forwarded-for` bidang.

1. **`s-ip`**

   Alamat IP CloudFront server yang melayani permintaan, misalnya, `192.0.2.183` atau`2001:0db8:85a3::8a2e:0370:7334`.

1. **`time-to-first-byte`**

   Jumlah detik antara menerima permintaan dan menulis byte pertama respons, sebagaimana diukur pada server.

1. **`sc-status`**

   Kode status HTTP dari respon server (misalnya,`200`).

1. **`sc-bytes`**

   Jumlah total byte yang dikirim server ke penampil sebagai respons terhadap permintaan, termasuk header. Untuk WebSocket dan koneksi gRPC, ini adalah jumlah total byte yang dikirim dari server ke klien melalui koneksi.

1. **`cs-method`**

   Metode permintaan HTTP yang diterima dari penampil.

1. **`cs-protocol`**

   Protokol permintaan penampil (`http`,`https`,`grpcs`,`ws`, atau`wss`).

1. **`cs-host`**

   Nilai yang disertakan oleh penampil dalam `Host` header permintaan. Jika Anda menggunakan nama CloudFront domain di objek Anda URLs (seperti d111111abcdef8.cloudfront.net), bidang ini berisi nama domain tersebut. Jika Anda menggunakan nama domain alternatif (CNAMEs) di objek Anda URLs (seperti www.example.com), bidang ini berisi nama domain alternatif.

1. **`cs-uri-stem`**

   Seluruh URL permintaan, termasuk string kueri (jika ada), tetapi tanpa nama domain. Misalnya, `/images/cat.jpg?mobile=true`.
**catatan**  
Dalam [log standar](AccessLogs.md), `cs-uri-stem` nilainya tidak menyertakan string kueri.

1. **`cs-bytes`**

   Jumlah total byte data yang disertakan oleh penampil, termasuk header. Untuk WebSocket dan koneksi gRPC, ini adalah jumlah total byte yang dikirim dari klien ke server pada koneksi.

1. **`x-edge-location`**

   Lokasi tepi yang melayani permintaan. Setiap lokasi tepi diidentifikasi oleh kode tiga huruf dan nomor yang ditetapkan secara sewenang-wenang (misalnya, DFW3). Kode tiga huruf biasanya sesuai dengan kode bandara International Air Transport Association (IATA) untuk bandara di dekat lokasi geografis lokasi tepi. (Ringkasan ini mungkin berubah di masa mendatang.)

1. **`x-edge-request-id`**

   String buram yang secara unik mengidentifikasi permintaan. CloudFront juga mengirimkan string ini di header `x-amz-cf-id` respons.

1. **`x-host-header`**

   Nama domain CloudFront distribusi (misalnya, d111111abcdef8.cloudfront.net).

1. **`time-taken`**

   Jumlah detik (hingga seperseribu detik, misalnya, 0,082) dari saat server menerima permintaan penampil hingga saat server menulis byte terakhir dari respons ke antrian output, yang diukur pada server. Dari perspektif penampil, total waktu untuk mendapatkan respons penuh akan lebih lama dari nilai ini karena latensi jaringan dan buffering TCP.

1. **`cs-protocol-version`**

   Versi HTTP yang ditentukan penampil dalam permintaan. Nilai yang mungkin termasuk adalah `HTTP/0.9`, `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0`, dan `HTTP/3.0`.

1. **`c-ip-version`**

   Versi IP dari permintaan (IPv4 atau IPv6).

1. **`cs-user-agent`**

   Nilai dari `User-Agent` header dalam permintaan. `User-Agent` header mengidentifikasi sumber permintaan, seperti jenis perangkat dan peramban yang mengirimkan permintaan atau, jika permintaan berasal dari mesin pencari, mesin pencari mana.

1. **`cs-referer`**

   Nilai dari `Referer` header dalam permintaan. Ini adalah nama domain yang membuat permintaan. Perujuk umum termasuk mesin pencari, situs web lain yang terhubung langsung ke objek Anda, dan situs web Anda sendiri.

1. **`cs-cookie`**

   `Cookie` header dalam permintaan, termasuk nama—pasangan nilai dan atribut terkait.
**catatan**  
Field ini dipotong menjadi 800 byte.

1. **`cs-uri-query`**

   Bagian utas kueri URL permintaan, jika ada.

1. **`x-edge-response-result-type`**

   Bagaimana server mengklasifikasikan respons tepat sebelum mengembalikan respons ke penampil. Lihat juga `x-edge-result-type` bidang. Nilai yang mungkin termasuk:
   + `Hit` – Server melayani objek ke penampil dari cache.
   + `RefreshHit` – Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut.
   + `Miss` – Permintaan tidak dapat dipenuhi oleh objek dalam cache, sehingga server meneruskan permintaan ke server asal dan mengembalikan hasil ke penampil.
   + `LimitExceeded`— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui.
   + `CapacityExceeded`— Server mengembalikan kesalahan 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek.
   + `Error` – Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilai `sc-status` bidang ada di `4xx` atau kesalahan server (nilai `sc-status` bidang ada di `5xx` beragam).

     Jika nilai `x-edge-result-type` adalah `Error` dan nilai bidang ini tidak `Error`, klien terputus sebelum menyelesaikan unduhan.
   + `Redirect` – Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
   + `LambdaExecutionError`— Fungsi Lambda @Edge yang terkait dengan distribusi tidak selesai karena asosiasi yang salah bentuk, batas waktu fungsi, masalah AWS ketergantungan, atau masalah ketersediaan umum lainnya.

1. **`x-forwarded-for`**

   Jika penampil menggunakan proksi HTTP atau timbangantor beban untuk mengirim permintaan, nilai `c-ip` adalah alamat IP dari perantara atau pemukul beban. Dalam hal ini, bidang ini adalah alamat IP penampil yang memulai permintaan. Bidang ini dapat berisi beberapa alamat IP yang dipisahkan koma. Setiap alamat IP dapat berupa IPv4 alamat (misalnya,`192.0.2.183`) atau IPv6 alamat (misalnya,`2001:0db8:85a3::8a2e:0370:7334`).

1. **`ssl-protocol`**

   Ketika permintaan menggunakan HTTPS, bidang ini berisi SSL/TLS protokol yang dinegosiasikan oleh penampil dan server untuk mentransmisikan permintaan dan respons. Untuk daftar nilai yang mungkin, lihat SSL/TLS protokol yang didukung di. [Protokol dan sandi yang didukung antara pemirsa dan CloudFront](secure-connections-supported-viewer-protocols-ciphers.md)

1. **`ssl-cipher`**

   Ketika permintaan menggunakan HTTPS, bidang ini berisi SSL/TLS cipher yang dinegosiasikan oleh penampil dan server untuk mengenkripsi permintaan dan respons. Untuk daftar nilai yang mungkin, lihat SSL/TLS cipher yang didukung di. [Protokol dan sandi yang didukung antara pemirsa dan CloudFront](secure-connections-supported-viewer-protocols-ciphers.md)

1. **`x-edge-result-type`**

   Bagaimana server menggolongkan respons setelah byte terakhir meninggalkan server. Dalam beberapa kasus, jenis hasil dapat berubah antara waktu saat server siap mengirimkan respons dan waktu saat server selesai mengirimkan respons. Lihat juga `x-edge-response-result-type` bidang.

   Misalnya, dalam streaming HTTP, seandainya server menemukan segmen aliran di cache. Dalam skenario itu, nilai kolom ini biasanya adalah `Hit`. Namun, jika penampil menutup koneksi sebelum server mengirimkan seluruh segmen, jenis hasil akhir (dan nilai kolom ini) adalah `Error`.

   WebSocket dan koneksi gRPC akan memiliki nilai `Miss` untuk bidang ini karena kontennya tidak dapat di-cache dan diproksi langsung ke asal.

   Nilai yang mungkin termasuk:
   + `Hit` – Server melayani objek ke penampil dari cache.
   + `RefreshHit` – Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut.
   + `Miss` – Permintaan tidak dapat dipenuhi oleh objek di dalam cache, sehingga server meneruskan permintaan ke asal dan mengembalikan hasil ke penampil.
   + `LimitExceeded`— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui.
   + `CapacityExceeded`Server mengembalikan kode status HTTP 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek.
   + `Error` – Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilai `sc-status` bidang ada di `4xx` atau kesalahan server (nilai `sc-status` bidang ada di `5xx` beragam). Jika nilai `sc-status` adalah `200`, atau jika nilai bidang ini adalah `Error` dan nilai dari `x-edge-response-result-type` bidang tidak `Error`, artinya permintaan HTTP berhasil tetapi klien terputus sebelum menerima semua byte.
   + `Redirect` – Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
   + `LambdaExecutionError`— Fungsi Lambda @Edge yang terkait dengan distribusi tidak selesai karena asosiasi yang salah bentuk, batas waktu fungsi, masalah AWS ketergantungan, atau masalah ketersediaan umum lainnya.

1. **`fle-encrypted-fields`**

   Jumlah bidang [enkripsi tingkat lapangan yang dienkripsi](field-level-encryption.md) dan diteruskan oleh server ke asal. CloudFront server mengalirkan permintaan yang diproses ke asal saat mereka mengenkripsi data, sehingga bidang ini dapat memiliki nilai meskipun nilainya `fle-status` adalah kesalahan.

1. **`fle-status`**

   Saat [enkripsi tingkat lapangan](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html) dikonfigurasi untuk distribusi, bidang ini berisi kode yang menunjukkan apakah badan permintaan berhasil diproses. Ketika server berhasil memproses isi permintaan, mengenkripsi nilai dalam bidang yang ditentukan, dan meneruskan permintaan ke asal, nilai bidang ini adalah `Processed`. Nilai dari `x-edge-result-type` masih dapat menunjukkan kesalahan sisi klien atau sisi server dalam kasus ini.

   Nilai yang mungkin untuk kolom ini meliputi:
   + `ForwardedByContentType` – Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada jenis konten yang dikonfigurasi.
   + `ForwardedByQueryArgs`— Server meneruskan permintaan ke asal tanpa parsing atau enkripsi karena permintaan berisi argumen kueri yang tidak ada dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `ForwardedDueToNoProfile` – Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada profil yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `MalformedContentTypeClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena nilai `Content-Type` header dalam format yang tidak valid.
   + `MalformedInputClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena bodi permintaan dalam format yang tidak valid.
   + `MalformedQueryArgsClientError` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena argumen kueri kosong atau dalam format yang tidak valid.
   + `RejectedByContentType` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada jenis konten yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `RejectedByQueryArgs` – Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada alasan kueri yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan.
   + `ServerError` – Server asal mengembalikan kesalahan.

   Jika permintaan melebihi kuota enkripsi tingkat lapangan (sebelumnya disebut sebagai batas), bidang ini berisi salah satu kode kesalahan berikut, dan server mengembalikan kode status HTTP 400 ke penampil. Untuk daftar kuota saat ini pada enkripsi tingkat lapangan, lihat [Kuotas pada enkripsi tingkat lapangan](cloudfront-limits.md#limits-field-level-encryption).
   + `FieldLengthLimitClientError` – Kolom yang dikonfigurasi untuk dienkripsi melebihi panjang maksimum yang diizinkan.
   + `FieldNumberLimitClientError` – Permintaan agar distribusi dikonfigurasi untuk mengenkripsi berisi lebih dari jumlah kolom yang diperbolehkan.
   + `RequestLengthLimitClientError` – Panjang badan permintaan melebihi panjang maksimum yang diperbolehkan ketika enkripsi tingkat lapangan dikonfigurasi.

1. **`sc-content-type`**

   Nilai HTTP `Content-Type` header respons.

1. **`sc-content-len`**

   Nilai HTTP `Content-Length` header respons.

1. **`sc-range-start`**

   Saat tanggapan berisi HTTP `Content-Range` header, kolom ini berisi nilai mulai rentang.

1. **`sc-range-end`**

   Saat tanggapan berisi HTTP `Content-Range` header, kolom ini berisi nilai akhir rentang.

1. **`c-port`**

   Nomor port permintaan dari penampil.

1. **`x-edge-detailed-result-type`**

   Bidang ini berisi nilai yang sama dengan `x-edge-result-type` bidang, kecuali dalam kasus berikut:
   + Ketika objek disajikan ke penampil dari lapisan [Origin Shield](origin-shield.md), bidang ini berisi`OriginShieldHit`.
   + Ketika objek tidak dalam CloudFront cache dan respons dihasilkan oleh [permintaan asal fungsi Lambda @Edge](lambda-at-the-edge.md), bidang ini berisi. `MissGeneratedResponse`
   + Ketika nilai bidang adalah`Error`, `x-edge-result-type` bidang ini berisi salah satu nilai berikut dengan informasi lebih lanjut tentang kesalahan:
     + `AbortedOrigin` – Server mengalami masalah dengan asal usul.
     + `ClientCommError` – Respons ke penampil terganggu karena masalah komunikasi antara server dan penampil.
     + `ClientGeoBlocked`— Distribusi dikonfigurasi untuk menolak permintaan dari lokasi geografis pemirsa.
     + `ClientHungUpRequest` – Penampil berhenti sebelum waktunya saat mengirim permintaan.
     + `Error`— Terjadi kesalahan yang jenis kesalahannya tidak sesuai dengan kategori lainnya. Jenis kesalahan ini dapat terjadi saat server menjalankan respons kesalahan dari cache.
     + `InvalidRequest` – Server menerima permintaan yang tidak valid dari penampil.
     + `InvalidRequestBlocked` – Akses ke sumber daya yang diminta diblokir.
     + `InvalidRequestCertificate`— Distribusi tidak cocok dengan SSL/TLS sertifikat tempat koneksi HTTPS dibuat.
     + `InvalidRequestHeader` Permintaan mengandung header yang tidak valid.
     + `InvalidRequestMethod` – Distribusi tidak dikonfigurasi untuk menangani metode permintaan HTTP yang digunakan. Ini dapat terjadi ketika distribusi hanya mendukung permintaan yang dapat disimpan.
     + `OriginCommError`— Permintaan habis waktu saat menghubungkan ke asal, atau membaca data dari asal.
     + `OriginConnectError`— Server tidak dapat terhubung ke asal.
     + `OriginContentRangeLengthError`— `Content-Length` Header dalam respons asal tidak cocok dengan panjang di `Content-Range` header.
     + `OriginDnsError`— Server tidak dapat menyelesaikan nama domain asal.
     + `OriginError` - Asal memberikan jawaban yang salah.
     + `OriginHeaderTooBigError` – Header yang dikembalikan oleh asalnya terlalu besar untuk diproses oleh server edge.
     + `OriginInvalidResponseError` – Asal memberikan respons tidak valid.
     + `OriginReadError`— Server tidak bisa membaca dari asalnya.
     + `OriginWriteError`— Server tidak bisa menulis ke asal.
     + `OriginZeroSizeObjectError` – Objek seukuran nol yang dikirim dari sumber mengakibatkan kesalahan.
     + `SlowReaderOriginError` – Penampil lambat untuk membaca pesan yang menyebabkan kesalahan asal.

1. **`c-country`**

   Kode negara yang mewakili lokasi geografis pemirsa, sebagaimana ditentukan oleh alamat IP pemirsa. Untuk daftar kode negara, lihat [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

1. **`cs-accept-encoding`**

    Nilai dari `Accept-Encoding` header di permintaan penampil.

1. **`cs-accept`**

   Nilai dari `Accept` header di permintaan penampil.

1. **`cache-behavior-path-pattern`**

   Pola jalur yang mengidentifikasi perilaku cache yang sesuai dengan permintaan penampil.

1. **`cs-headers`**

   Header HTTP (nama dan nilai) dalam permintaan penampil.
**catatan**  
Field ini dipotong menjadi 800 byte.

1. **`cs-header-names`**

   Nama header HTTP (bukan nilai) pada permintaan penampil.
**catatan**  
Field ini dipotong menjadi 800 byte.

1. **`cs-headers-count`**

    Jumlah header HTTP di permintaan penampil.

1. **`primary-distribution-id`**

   Ketika penerapan berkelanjutan diaktifkan, ID ini mengidentifikasi distribusi mana yang utama dalam distribusi saat ini.

1. **`primary-distribution-dns-name`**

   Ketika penerapan berkelanjutan diaktifkan, nilai ini menunjukkan nama domain utama yang terkait dengan CloudFront distribusi saat ini (misalnya, d111111abcdef8.cloudfront.net).

1. **`origin-fbl`**

   Jumlah detik latensi byte pertama antara CloudFront dan asal Anda.

1. **`origin-lbl`**

   Jumlah detik latensi byte terakhir antara CloudFront dan asal Anda.

1. **`asn`**

   Nomor sistem otonom (ASN) dari pemirsa.

1. <a name="CMCD-real-time-logging-fields"></a>
**Bidang CMCD dalam log akses real-time**  
Untuk informasi selengkapnya tentang bidang ini, lihat dokumen [CTA Specification Web Application Video Ecosystem - Common Media Client Data CTA-5004](https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf).

1. **`cmcd-encoded-bitrate`**

   Bitrate yang dikodekan dari objek audio atau video yang diminta. 

1. **`cmcd-buffer-length`**

   Panjang buffer dari objek media yang diminta.

1. **`cmcd-buffer-starvation`**

   Apakah buffer kelaparan di beberapa titik antara permintaan sebelumnya dan permintaan objek. Hal ini dapat menyebabkan pemain berada dalam stat rebuffering, yang dapat menghentikan pemutaran video atau audio. 

1. **`cmcd-content-id`**

   String unik yang mengidentifikasi konten saat ini.

1. **`cmcd-object-duration`**

   Durasi pemutaran objek yang diminta (dalam milidetik). 

1. **`cmcd-deadline`**

   Batas waktu dari waktu permintaan bahwa sampel pertama objek ini harus tersedia, sehingga status buffer underrun atau masalah pemutaran lainnya dihindari. 

1. **`cmcd-measured-throughput`**

   Throughput antara klien dan server, yang diukur oleh klien.

1. **`cmcd-next-object-request`**

   Jalur relatif dari objek yang diminta berikutnya.

1. **`cmcd-next-range-request`**

   Jika permintaan berikutnya adalah permintaan objek sebagian, string ini menunjukkan rentang byte yang akan diminta.

1. **`cmcd-object-type`**

   Jenis media dari objek saat ini yang diminta.

1. **`cmcd-playback-rate`**

   1 jika real-time, 2 jika kecepatan ganda, 0 jika tidak bermain. 

1. **`cmcd-requested-maximum-throughput`**

   Throughput maksimum yang diminta yang dianggap klien cukup untuk pengiriman aset.

1. **`cmcd-streaming-format`**

   Format streaming yang menentukan permintaan saat ini.

1. **`cmcd-session-id`**

   GUID yang mengidentifikasi sesi pemutaran saat ini.

1. **`cmcd-stream-type`**

   Token mengidentifikasi ketersediaan segmen. `v`= semua segmen tersedia. `l`= segmen menjadi tersedia dari waktu ke waktu.

1. **`cmcd-startup`**

   Kunci disertakan tanpa nilai jika objek dibutuhkan segera selama startup, pencarian, atau pemulihan setelah peristiwa buffer-kosong.

1. **`cmcd-top-bitrate`**

   Rendition bitrate tertinggi yang dapat dimainkan klien.

1. **`cmcd-version`**

   Versi spesifikasi ini digunakan untuk menafsirkan nama kunci dan nilai yang ditentukan. Jika kunci ini dihilangkan, klien dan server *harus* menafsirkan nilai-nilai yang didefinisikan oleh versi 1.

1. **`r-host`**

   Bidang ini dikirim untuk permintaan asal dan ini menunjukkan domain server asal yang digunakan untuk melayani objek. Jika terjadi kesalahan, Anda dapat menggunakan bidang ini untuk menemukan asal terakhir yang dicoba, misalnya:`cd8jhdejh6a.mediapackagev2.us-east-1.amazonaws.com`.

1. **`sr-reason`**

   Bidang ini memberikan alasan mengapa asal dipilih. Ini kosong ketika permintaan ke asal primer berhasil.

   Jika failover asal terjadi, bidang akan berisi kode kesalahan HTTP yang mengarah ke failover, seperti `Failover:403` atau. `Failover:502` Dalam kasus failover asal, jika permintaan yang dicoba ulang juga gagal dan Anda belum mengonfigurasi halaman kesalahan khusus, maka `r-status` tunjukkan respons asal kedua. Namun, jika Anda telah mengonfigurasi halaman kesalahan khusus bersama dengan failover asal, maka ini akan berisi respons asal kedua jika permintaan gagal dan halaman kesalahan khusus dikembalikan sebagai gantinya.

   Jika tidak ada failover asal yang terjadi tetapi pemilihan asal ketahanan sadar kualitas media (MQAR) terjadi, maka ini akan dicatat sebagai. `MediaQuality` Untuk informasi selengkapnya, lihat [Ketahanan sadar kualitas media](media-quality-score.md).

1. **`x-edge-mqcs`**

   Bidang ini menunjukkan Skor Keyakinan Kualitas Media (MQCS) (rentang: 0 — 100) untuk segmen media yang CloudFront diambil di header respons CMSD dari v2. MediaPackage Bidang ini tersedia untuk permintaan yang cocok dengan perilaku cache yang memiliki grup asal berkemampuan MQAR. CloudFront mencatat bidang ini untuk segmen media yang juga disajikan dari cache-nya selain permintaan asal. Untuk informasi selengkapnya, lihat [Ketahanan sadar kualitas media](media-quality-score.md).

1. **`distribution-tenant-id`**

   ID penyewa distribusi.

1. **`connection-id`**

   Pengidentifikasi unik untuk koneksi TLS. 

   Anda harus mengaktifkan MTL untuk distribusi Anda sebelum Anda bisa mendapatkan informasi untuk bidang ini. Untuk informasi selengkapnya, lihat [Otentikasi TLS timbal balik dengan CloudFront (Viewer mTLS)Asal TLS timbal balik dengan CloudFront](mtls-authentication.md).

### Titik Akhir (Kinesis Data Streams)
<a name="real-time-logs-endpoint"></a>

Titik akhir berisi informasi tentang Kinesis Data Streams tempat Anda ingin mengirim log waktu nyata. Anda menyediakan Amazon Resource Name (ARN) dari aliran data.

Untuk informasi selengkapnya tentang membuat Kinesis Data Streams, lihat topik berikut *di Panduan Pengembang Amazon Kinesis Data Streams*.
+ [Membuat dan mengelola aliran](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html)
+ [Lakukan operasi Kinesis Data Streams dasar menggunakan AWS CLI](https://docs.aws.amazon.com/streams/latest/dev/fundamental-stream.html)
+ [Membuat aliran](https://docs.aws.amazon.com/streams/latest/dev/kinesis-using-sdk-java-create-stream.html) (menggunakan AWS SDK untuk Java)

Saat Anda membuat aliran data, Anda perlu menentukan jumlah shard. Gunakan informasi berikut untuk membantu Anda memperkirakan jumlah shard yang Anda butuhkan.

**Untuk memperkirakan jumlah shard untuk aliran data Kinesis Anda**

1. Hitung (atau perkirakan) jumlah permintaan per detik saat CloudFront yang diterima.

   Anda dapat menggunakan [laporan CloudFront penggunaan](https://console.aws.amazon.com/cloudfront/v4/home#/usage) (di CloudFront konsol) dan [CloudFront metrik](viewing-cloudfront-metrics.md#monitoring-console.distributions) (di CloudWatch konsol CloudFront dan Amazon) untuk membantu menghitung permintaan per detik.

1. Tentukan ukuran khas dari catatan log akses real-time tunggal.

   Secara umum, satu catatan log adalah sekitar 500 byte. Catatan besar yang mencakup semua kolom yang tersedia biasanya sekitar 1 KB.

   Jika Anda tidak yakin ukuran catatan log Anda, Anda dapat mengaktifkan log waktu nyata dengan laju pengambilan sampel rendah (misalnya, 1%), dan kemudian menghitung ukuran rekaman rata-rata menggunakan data pemantauan di Kinesis Data Streams (total byte masuk dibagi dengan jumlah total catatan).

1. Di halaman [harga Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/pricing/) Kalkulator Harga AWS, di bawah**, pilih Buat perkiraan kustom Anda sekarang**.
   + Dalam kalkulator, masukkan jumlah permintaan (catatan) per detik.
   + Masukkan ukuran catatan rata-rata dari satu catatan log.
   + Pilih **Tampilkan perhitungan**.

   Kalkulator harga menunjukkan jumlah pecahan yang Anda butuhkan dan perkiraan biaya.

### IAM Role
<a name="real-time-logs-IAM"></a>

Peran AWS Identity and Access Management (IAM) yang memberikan CloudFront izin untuk mengirimkan log akses real-time ke aliran data Kinesis Anda.

Saat membuat konfigurasi log akses real-time dengan CloudFront konsol, Anda dapat memilih **Buat peran layanan baru** agar konsol membuat peran IAM untuk Anda.

Saat Anda membuat konfigurasi log akses real-time dengan AWS CloudFormation atau CloudFront API (AWS CLI atau SDK), Anda harus membuat peran IAM sendiri dan menyediakan peran ARN. Untuk membuat peran IAM sendiri, gunakan kebijakan berikut.

**Kebijakan kepercayaan peran IAM**

Untuk menggunakan kebijakan kepercayaan peran IAM berikut, ganti *111122223333* dengan Akun AWS nomor Anda. `Condition`Elemen dalam kebijakan ini membantu mencegah [masalah wakil yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) karena hanya CloudFront dapat mengambil peran ini atas nama distribusi di Anda Akun AWS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

**Kebijakan izin peran IAM untuk aliran data yang tidak terenkripsi**

Untuk menggunakan kebijakan berikut, ganti *arn:aws:kinesis:us-east-2:123456789012:stream/StreamName* dengan ARN aliran data Kinesis Anda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStreamSummary",
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": [
                "arn:aws:kinesis:us-east-2:123456789012:stream/StreamName"
            ]
        }
    ]
}
```

------

**Kebijakan izin peran IAM untuk aliran data terenkripsi**

Untuk menggunakan kebijakan berikut, ganti *arn:aws:kinesis:us-east-2:123456789012:stream/StreamName* dengan ARN aliran data Kinesis Anda dan dengan *arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486* ARN Anda. AWS KMS key

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStreamSummary",
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": [
                "arn:aws:kinesis:us-east-2:123456789012:stream/StreamName"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486"
            ]
        }
    ]
}
```

------

****  

## Membuat konsumen Kinesis Data Streams
<a name="real-time-log-consumer-guidance"></a>

Untuk membaca dan menganalisis log akses real-time, Anda membuat atau menggunakan konsumen Kinesis *Data* Streams. Saat Anda membangun konsumen untuk log CloudFront waktu nyata, penting untuk mengetahui bahwa bidang di setiap catatan log akses real-time selalu dikirimkan dalam urutan yang sama, seperti yang tercantum di [Bidang](#real-time-logs-fields) bagian. Pastikan Anda membangun konsumen untuk mengakomodasi pesanan tetap ini.

Misalnya, pertimbangkan konfigurasi log akses real-time yang hanya mencakup tiga bidang ini:`time-to-first-byte`,`sc-status`, dan`c-country`. Dalam skenario ini, kolom terakhir, `c-country`, adalah selalu nomor kolom 3 dalam setiap catatan log. Namun, jika nanti Anda menambahkan bidang ke konfigurasi log akses real-time, penempatan setiap bidang dalam catatan dapat berubah.

Misalnya, jika Anda menambahkan bidang `sc-bytes` dan `time-taken` konfigurasi log akses real-time, bidang ini dimasukkan ke dalam setiap catatan log sesuai dengan urutan yang ditunjukkan di [Bidang](#real-time-logs-fields) bagian. Urutan yang dihasilkan dari semua lima bidang adalah `time-to-first-byte`, `sc-status`, `sc-bytes`, `time-taken`, dan `c-country`. Bidang `c-country` awalnya merupakan bidang nomor 3, tapi sekarang menjadi bidang nomor 5. Pastikan aplikasi konsumen Anda dapat menangani bidang yang mengubah posisi dalam catatan log, jika Anda menambahkan bidang ke konfigurasi log akses real-time Anda.

## Memecahkan masalah log akses waktu nyata
<a name="real-time-log-troubleshooting"></a>

Setelah membuat konfigurasi log akses real-time, Anda mungkin menemukan bahwa tidak ada catatan (atau tidak semua rekaman) yang dikirim ke Kinesis Data Streams. Dalam kasus ini, Anda harus memverifikasi terlebih dahulu bahwa CloudFront distribusi menerima permintaan penampil. Jika ya, Anda dapat memeriksa pengaturan berikut untuk melanjutkan pemecahan masalah.

**Izin peran IAM**  
Untuk mengirimkan catatan log akses real-time ke aliran data Kinesis Anda, CloudFront gunakan peran IAM dalam konfigurasi log akses real-time. Pastikan bahwa kebijakan kepercayaan peran dan kebijakan izin peran sesuai dengan kebijakan yang ditunjukkan dalam [IAM Role](#real-time-logs-IAM).

**Perutean Data Kinesis**  
Jika CloudFront menulis catatan log akses real-time ke aliran data Kinesis Anda lebih cepat daripada yang dapat ditangani oleh aliran, Kinesis Data Streams mungkin membatasi permintaan dari. CloudFront Dalam hal ini, Anda dapat meningkatkan jumlah pecahan dalam aliran data Kinesis. Setiap shard dapat mendukung penulisan hingga 1.000 catatan per detik, hingga maksimum penulisan data 1 MB per detik.

# Log fungsi tepi
<a name="edge-functions-logs"></a>

[Anda dapat menggunakan Amazon CloudWatch Logs untuk mendapatkan log untuk fungsi edge Anda, baik [Lambda @Edge](lambda-at-the-edge.md) maupun CloudFront Functions.](cloudfront-functions.md) Anda dapat mengakses log dengan menggunakan CloudWatch konsol atau CloudWatch Logs API.

**penting**  
Kami menyarankan Anda menggunakan log untuk memahami sifat permintaan untuk konten Anda, bukan sebagai akuntansi lengkap dari semua permintaan. CloudFront memberikan log fungsi tepi dengan upaya terbaik. Entri log untuk permintaan tertentu mungkin dikirim dalam waktu lama setelah permintaan diproses secara aktual dan, dalam kasus yang jarang, entri log mungkin tidak dikirimkan sama sekali. Ketika entri log dihilangkan dari log fungsi edge, jumlah entri dalam log fungsi edge tidak akan cocok dengan penggunaan yang muncul dalam laporan AWS penagihan dan penggunaan.

**Topics**
+ [Log Lambda @Edge](#lambda-at-edge-logs)
+ [CloudFront Fungsi log](#cloudfront-function-logs)

## Log Lambda @Edge
<a name="lambda-at-edge-logs"></a>

Lambda @Edge secara otomatis mengirim log fungsi ke CloudWatch Log, membuat aliran log di Wilayah AWS tempat fungsi dipanggil. Saat Anda membuat atau memodifikasi fungsi AWS Lambda, Anda dapat menggunakan nama grup CloudWatch log default atau menyesuaikannya.
+ Nama grup log default adalah `/aws/lambda/<FunctionName>` di mana `<FunctionName>` adalah nama yang Anda tentukan saat Anda membuat fungsi. Saat mengirim log ke CloudWatch, Lambda @Edge akan secara otomatis menambahkan `us-east-1` awalan ke nama fungsi, sehingga nama grup log adalah. `/aws/lambda/us-east-1.<FunctionName>` Awalan ini sesuai dengan Wilayah AWS tempat fungsi itu dibuat. Awalan ini tetap menjadi bagian dari nama grup log, bahkan di Wilayah lain tempat fungsi dipanggil. 
+ Jika Anda menentukan nama grup log kustom, seperti`/MyLogGroup`, Lambda @Edge tidak akan menambahkan awalan Region. Nama grup log tetap sama di semua Wilayah lain tempat fungsi dipanggil.

**catatan**  
Jika Anda membuat grup log kustom dan menentukan nama yang sama dengan default`/aws/lambda/<FunctionName>`, Lambda @Edge menambahkan `us-east-1` awalan ke nama fungsi.

Selain menyesuaikan nama grup log, fungsi Lambda @Edge mendukung format JSON dan log teks biasa, dan pemfilteran tingkat log. Untuk informasi selengkapnya, lihat [Mengonfigurasi kontrol logging lanjutan untuk fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs-advanced.html) di Panduan *AWS Lambda Pengembang.*

**catatan**  
Log throttle Lambda@Edge berdasarkan volume permintaan dan ukuran log.

Anda harus meninjau file CloudWatch log di Wilayah yang benar untuk melihat file log fungsi Lambda @Edge Anda. Untuk melihat Wilayah tempat fungsi Lambda @Edge Anda berjalan, lihat grafik metrik untuk fungsi di konsol. CloudFront Metrik ditampilkan untuk setiap Wilayah . Pada halaman yang sama, Anda dapat memilih Wilayah dan kemudian melihat file log untuk Wilayah tersebut untuk menyelidiki masalah.

Untuk mempelajari lebih lanjut tentang cara menggunakan CloudWatch Log dengan fungsi Lambda @Edge, lihat topik berikut:
+ Untuk informasi selengkapnya tentang melihat grafik di bagian **Pemantauan** CloudFront konsol, lihat[Pantau CloudFront metrik dengan Amazon CloudWatch](monitoring-using-cloudwatch.md).
+ Untuk informasi tentang izin yang diperlukan untuk mengirim data ke CloudWatch Log, lihat[Siapkan izin dan peran IAM untuk Lambda @Edge](lambda-edge-permissions.md).
+ *Untuk informasi tentang menambahkan logging ke fungsi Lambda @Edge, lihat [AWS Lambda fungsi logging di Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-logging.html) atau [AWS Lambda fungsi logging di Python](https://docs.aws.amazon.com/lambda/latest/dg/python-logging.html) di Panduan Pengembang.AWS Lambda *
+ Untuk informasi tentang kuota CloudWatch Log (sebelumnya dikenal sebagai batas), lihat [Kuota CloudWatch log di Panduan Pengguna](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html) *Amazon CloudWatch * Logs.

## CloudFront Fungsi log
<a name="cloudfront-function-logs"></a>

Jika kode CloudFront fungsi berisi `console.log()` pernyataan, CloudFront Fungsi secara otomatis mengirimkan baris log ini ke CloudWatch Log. Jika tidak ada `console.log()` pernyataan, tidak ada yang dikirim ke CloudWatch Log.

CloudFront Fungsi selalu membuat aliran log di Wilayah AS Timur (Virginia N.`us-east-1`), tidak peduli lokasi tepi mana yang menjalankan fungsi tersebut. Nama aliran log dalam format `YYYY/M/D/UUID`.

Nama grup log menggunakan format berikut:
+ Untuk CloudFront Fungsi pada tingkat perilaku cache, formatnya adalah `/aws/cloudfront/function/<FunctionName>`
+ Untuk CloudFront Fungsi di tingkat distribusi (Fungsi Koneksi), formatnya adalah `/aws/cloudfront/connection-function/<FunctionName>`

Itu `<FunctionName>` adalah nama yang Anda berikan ke fungsi saat Anda membuatnya.

**Example Permintaan penampil**  
Berikut ini menunjukkan contoh pesan log yang dikirim ke CloudWatch Log. Setiap baris dimulai dengan ID yang secara unik mengidentifikasi permintaan. CloudFront Pesan dimulai dengan `START` baris yang menyertakan ID CloudFront distribusi, dan diakhiri dengan `END` garis. Baris log yang dihasilkan pernyataan `console.log()` dalam fungsi berada di antara baris `START` dan `END`.  

```
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADAXZZ
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== Example function log output
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END
```

**Example Permintaan koneksi**  
Berikut ini menunjukkan contoh pesan log yang dikirim ke CloudWatch Log. Setiap baris dimulai dengan ID yang secara unik mengidentifikasi permintaan. CloudFront Pesan dimulai dengan `START` baris yang menyertakan ID CloudFront distribusi, dan diakhiri dengan `END` garis. Baris log yang dihasilkan pernyataan `console.log()` dalam fungsi berada di antara baris `START` dan `END`.  

```
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADA123
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== 1.2.3.4
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END
```

**catatan**  
CloudFront Fungsi mengirimkan log ke CloudWatch hanya untuk fungsi di `LIVE` tahap yang berjalan sebagai respons terhadap permintaan dan tanggapan produksi. Saat Anda [menguji suatu fungsi](test-function.md), CloudFront tidak mengirim log apa pun ke CloudWatch. Output pengujian berisi informasi tentang kesalahan, pemanfaatan komputasi, dan log fungsi (`console.log()`pernyataan), tetapi informasi ini tidak dikirim ke. CloudWatch

CloudFront Fungsi menggunakan [peran terkait layanan AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM) untuk mengirim log ke CloudWatch Log di akun Anda. Peran terkait layanan adalah peran IAM yang ditautkan langsung ke file. Layanan AWS Peran terkait layanan telah ditentukan sebelumnya oleh layanan dan mencakup semua izin yang diperlukan layanan untuk memanggil orang lain untuk Anda. Layanan AWS CloudFront Fungsi menggunakan peran **AWSServiceRoleForCloudFrontLogger**terkait layanan. Untuk informasi selengkapnya tentang peran ini, lihat [Peran terkait layanan untuk Lambda @Edge](lambda-edge-permissions.md#using-service-linked-roles-lambda-edge)( Lambda@Edge menggunakan peran terkait layanan yang sama).

Ketika fungsi gagal dengan kesalahan validasi atau kesalahan eksekusi, informasi tersebut dicatat dalam log [standar dan log](AccessLogs.md) [akses real-time](real-time-logs.md). Untuk informasi spesifik tentang kesalahan, lihat `x-edge-detailed-result-type` bidang `x-edge-result-type``x-edge-response-result-type`,, dan.

# Pencatatan panggilan CloudFront API Amazon menggunakan AWS CloudTrail
<a name="logging_using_cloudtrail"></a>

CloudFront terintegrasi dengan [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau Layanan AWS. CloudTrail menangkap semua panggilan API untuk CloudFront sebagai peristiwa. Panggilan yang diambil termasuk panggilan dari CloudFront konsol dan panggilan kode ke operasi CloudFront API. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat CloudFront, alamat IP dari mana permintaan dibuat, kapan dibuat, dan detail tambahan.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan berikut hal ini:
+ Baik permintaan tersebut dibuat dengan kredensial pengguna root atau pengguna.
+ Apakah permintaan dibuat atas nama pengguna IAM Identity Center.
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna gabungan.
+ Apakah permintaan tersebut dibuat oleh Layanan AWS lain.

CloudTrail aktif di Anda Akun AWS ketika Anda membuat akun dan Anda secara otomatis memiliki akses ke **riwayat CloudTrail Acara**. **Riwayat CloudTrail Acara menyediakan catatan** yang dapat dilihat, dapat dicari, dapat diunduh, dan tidak dapat diubah dari 90 hari terakhir dari peristiwa manajemen yang direkam dalam file. Wilayah AWS Untuk informasi selengkapnya, lihat [Bekerja dengan riwayat CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) di *Panduan AWS CloudTrail Pengguna*. Tidak ada CloudTrail biaya untuk melihat **riwayat Acara**.

Untuk catatan acara yang sedang berlangsung dalam 90 hari Akun AWS terakhir Anda, buat jejak atau penyimpanan data acara [CloudTrailDanau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**CloudTrail jalan setapak**  
*Jejak* memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Semua jalur yang dibuat menggunakan Konsol Manajemen AWS Multi-region. Anda dapat membuat jalur Single-region atau Multi-region dengan menggunakan. AWS CLI Membuat jejak Multi-wilayah disarankan karena Anda menangkap aktivitas Wilayah AWS di semua akun Anda. Jika Anda membuat jejak wilayah Tunggal, Anda hanya dapat melihat peristiwa yang dicatat di jejak. Wilayah AWS Untuk informasi selengkapnya tentang jejak, lihat [Membuat jejak untuk Anda Akun AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) dan [Membuat jejak untuk organisasi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) di *Panduan AWS CloudTrail Pengguna*.  
Anda dapat mengirimkan satu salinan acara manajemen yang sedang berlangsung ke bucket Amazon S3 Anda tanpa biaya CloudTrail dengan membuat jejak, namun, ada biaya penyimpanan Amazon S3. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/). Untuk informasi tentang harga Amazon S3, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**CloudTrail Menyimpan data acara danau**  
*CloudTrail Lake* memungkinkan Anda menjalankan kueri berbasis SQL pada acara Anda. CloudTrail [Lake mengonversi peristiwa yang ada dalam format JSON berbasis baris ke format Apache ORC.](https://orc.apache.org/) ORC adalah format penyimpanan kolumnar yang dioptimalkan untuk pengambilan data dengan cepat. Peristiwa digabungkan ke dalam *penyimpanan data peristiwa*, yang merupakan kumpulan peristiwa yang tidak dapat diubah berdasarkan kriteria yang Anda pilih dengan menerapkan pemilih acara [tingkat lanjut](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Penyeleksi yang Anda terapkan ke penyimpanan data acara mengontrol peristiwa mana yang bertahan dan tersedia untuk Anda kueri. Untuk informasi lebih lanjut tentang CloudTrail Danau, lihat [Bekerja dengan AWS CloudTrail Danau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) di *Panduan AWS CloudTrail Pengguna*.  
CloudTrail Penyimpanan data acara danau dan kueri menimbulkan biaya. Saat Anda membuat penyimpanan data acara, Anda memilih [opsi harga](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) yang ingin Anda gunakan untuk penyimpanan data acara. Opsi penetapan harga menentukan biaya untuk menelan dan menyimpan peristiwa, dan periode retensi default dan maksimum untuk penyimpanan data acara. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

**catatan**  
CloudFront adalah layanan global. CloudTrail merekam peristiwa untuk CloudFront di Wilayah AS Timur (Virginia N.). Untuk informasi selengkapnya, lihat [Acara layanan global](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-global-service-events) di *Panduan AWS CloudTrail Pengguna*.  
Jika Anda menggunakan kredensil keamanan sementara dengan menggunakan AWS Security Token Service, panggilan ke titik akhir regional, seperti`us-west-2`, masuk CloudTrail ke Wilayah yang sesuai.   
Untuk informasi selengkapnya tentang CloudFront titik akhir, lihat [CloudFront titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/cf_region.html) di. *Referensi Umum AWS*

## CloudFront peristiwa data di CloudTrail
<a name="cloudtrail-data-events"></a>

[Peristiwa data](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events) memberikan informasi tentang operasi sumber daya yang dilakukan pada atau di sumber daya (misalnya, membaca atau menulis ke CloudFront distribusi). Ini juga dikenal sebagai operasi bidang data. Peristiwa data sering kali merupakan aktivitas bervolume tinggi. Secara default, CloudTrail tidak mencatat peristiwa data. **Riwayat CloudTrail peristiwa** tidak merekam peristiwa data.

Biaya tambahan berlaku untuk peristiwa data. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

Anda dapat mencatat peristiwa data untuk jenis CloudFront sumber daya menggunakan CloudTrail konsol AWS CLI, atau operasi CloudTrail API. Untuk informasi selengkapnya tentang cara mencatat peristiwa data, lihat [Mencatat peristiwa data dengan Konsol Manajemen AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console) dan Mencatat [peristiwa data dengan AWS Command Line Interface](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI) di *Panduan AWS CloudTrail Pengguna*.

Tabel berikut mencantumkan jenis CloudFront sumber daya yang dapat Anda log peristiwa data. Kolom **tipe peristiwa data (konsol)** menunjukkan nilai yang akan dipilih dari daftar **tipe peristiwa Data** di CloudTrail konsol. Kolom nilai **resources.type menunjukkan `resources.type` nilai**, yang akan Anda tentukan saat mengonfigurasi penyeleksi acara lanjutan menggunakan or. AWS CLI CloudTrail APIs CloudTrailKolom **Data yang APIs dicatat ke** menampilkan panggilan API yang dicatat CloudTrail untuk jenis sumber daya. 


| Jenis peristiwa data (konsol) | nilai resources.type | Data APIs masuk CloudTrail | 
| --- | --- | --- | 
| CloudFront KeyValueStore |  AWS::CloudFront::KeyValueStore  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudFront/latest/DeveloperGuide/logging_using_cloudtrail.html)  | 

Anda dapat mengonfigurasi pemilih acara lanjutan untuk memfilter pada `eventName``readOnly`,, dan `resources.ARN` bidang untuk mencatat hanya peristiwa yang penting bagi Anda. Untuk informasi selengkapnya tentang bidang ini, lihat [https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)di *Referensi AWS CloudTrail API*.

## CloudFront acara manajemen di CloudTrail
<a name="cloudtrail-management-events"></a>

[Acara manajemen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) memberikan informasi tentang operasi manajemen yang dilakukan pada sumber daya di Anda Akun AWS. Ini juga dikenal sebagai operasi bidang kontrol. Secara default, CloudTrail mencatat peristiwa manajemen.

Amazon CloudFront mencatat semua operasi pesawat CloudFront kontrol sebagai peristiwa manajemen. Untuk daftar operasi bidang CloudFront kontrol Amazon yang CloudFront masuk ke log CloudTrail, lihat [Referensi Amazon CloudFront API](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Operations_Amazon_CloudFront.html).

## CloudFront contoh acara
<a name="cloudtrail-event-examples"></a>

Peristiwa mewakili permintaan tunggal dari sumber manapun dan mencakup informasi tentang operasi API yang diminta, tanggal dan waktu operasi, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, sehingga peristiwa tidak muncul dalam urutan tertentu.

**Contents**
+ [Contoh: UpdateDistribution](#example-cloudfront-service-cloudtrail-log)
+ [Contoh: UpdateKeys](#example-cloudfront-kvs-cloudtrail-log)

### Contoh: UpdateDistribution
<a name="example-cloudfront-service-cloudtrail-log"></a>

Contoh berikut menunjukkan CloudTrail peristiwa yang menunjukkan [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)operasi.

Untuk panggilan ke CloudFront API, `eventSource` adalah`cloudfront.amazonaws.com`.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:role-session-name",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/role-session-name",
        "accountId": "111122223333",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-02-02T19:23:50Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2024-02-02T19:26:01Z",
    "eventSource": "cloudfront.amazonaws.com",
    "eventName": "UpdateDistribution",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "52.94.133.137",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "requestParameters": {
        "distributionConfig": {
            "defaultRootObject": "",
            "aliases": {
                "quantity": 3,
                "items": [
                    "alejandro_rosalez.awsps.myinstance.com",
                    "cross-testing.alejandro_rosalez.awsps.myinstance.com",
                    "*.alejandro_rosalez.awsps.myinstance.com"
                ]
            },
            "cacheBehaviors": {
                "quantity": 0,
                "items": []
            },
            "httpVersion": "http2and3",
            "originGroups": {
                "quantity": 0,
                "items": []
            },
            "viewerCertificate": {
                "minimumProtocolVersion": "TLSv1.2_2021",
                "cloudFrontDefaultCertificate": false,
                "aCMCertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                "sSLSupportMethod": "sni-only"
            },
            "webACLId": "arn:aws:wafv2:us-east-1:111122223333:global/webacl/testing-acl/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "customErrorResponses": {
                "quantity": 0,
                "items": []
            },
            "logging": {
                "includeCookies": false,
                "prefix": "",
                "enabled": false,
                "bucket": ""
            },
            "priceClass": "PriceClass_All",
            "restrictions": {
                "geoRestriction": {
                    "restrictionType": "none",
                    "quantity": 0,
                    "items": []
                }
            },
            "isIPV6Enabled": true,
            "callerReference": "1578329170895",
            "continuousDeploymentPolicyId": "",
            "enabled": true,
            "defaultCacheBehavior": {
                "targetOriginId": "d111111abcdef8",
                "minTTL": 0,
                "compress": false,
                "maxTTL": 31536000,
                "functionAssociations": {
                    "quantity": 0,
                    "items": []
                },
                "trustedKeyGroups": {
                    "quantity": 0,
                    "items": [],
                    "enabled": false
                },
                "smoothStreaming": false,
                "fieldLevelEncryptionId": "",
                "defaultTTL": 86400,
                "lambdaFunctionAssociations": {
                    "quantity": 0,
                    "items": []
                },
                "viewerProtocolPolicy": "redirect-to-https",
                "forwardedValues": {
                    "cookies": {"forward": "none"},
                    "queryStringCacheKeys": {
                        "quantity": 0,
                        "items": []
                    },
                    "queryString": false,
                    "headers": {
                        "quantity": 1,
                        "items": ["*"]
                    }
                },
                "trustedSigners": {
                    "items": [],
                    "enabled": false,
                    "quantity": 0
                },
                "allowedMethods": {
                    "quantity": 2,
                    "items": [
                        "HEAD",
                        "GET"
                    ],
                    "cachedMethods": {
                        "quantity": 2,
                        "items": [
                            "HEAD",
                            "GET"
                        ]
                    }
                }
            },
            "staging": false,
            "origins": {
                "quantity": 1,
                "items": [
                    {
                        "originPath": "",
                        "connectionTimeout": 10,
                        "customOriginConfig": {
                            "originReadTimeout": 30,
                            "hTTPSPort": 443,
                            "originProtocolPolicy": "https-only",
                            "originKeepaliveTimeout": 5,
                            "hTTPPort": 80,
                            "originSslProtocols": {
                                "quantity": 3,
                                "items": [
                                    "TLSv1",
                                    "TLSv1.1",
                                    "TLSv1.2"
                                ]
                            }
                        },
                        "id": "d111111abcdef8",
                        "domainName": "d111111abcdef8.cloudfront.net",
                        "connectionAttempts": 3,
                        "customHeaders": {
                            "quantity": 0,
                            "items": []
                        },
                        "originShield": {"enabled": false},
                        "originAccessControlId": ""
                    }
                ]
            },
            "comment": "HIDDEN_DUE_TO_SECURITY_REASONS"
        },
        "id": "EDFDVBD6EXAMPLE",
        "ifMatch": "E1RTLUR9YES76O"
    },
    "responseElements": {
        "distribution": {
            "activeTrustedSigners": {
                "quantity": 0,
                "enabled": false
            },
            "id": "EDFDVBD6EXAMPLE",
            "domainName": "d111111abcdef8.cloudfront.net",
            "distributionConfig": {
                "defaultRootObject": "",
                "aliases": {
                    "quantity": 3,
                    "items": [
                        "alejandro_rosalez.awsps.myinstance.com",
                        "cross-testing.alejandro_rosalez.awsps.myinstance.com",
                        "*.alejandro_rosalez.awsps.myinstance.com"
                    ]
                },
                "cacheBehaviors": {"quantity": 0},
                "httpVersion": "http2and3",
                "originGroups": {"quantity": 0},
                "viewerCertificate": {
                    "minimumProtocolVersion": "TLSv1.2_2021",
                    "cloudFrontDefaultCertificate": false,
                    "aCMCertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                    "sSLSupportMethod": "sni-only",
                    "certificateSource": "acm",
                    "certificate": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
                },
                "webACLId": "arn:aws:wafv2:us-east-1:111122223333:global/webacl/testing-acl/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
                "customErrorResponses": {"quantity": 0},
                "logging": {
                    "includeCookies": false,
                    "prefix": "",
                    "enabled": false,
                    "bucket": ""
                },
                "priceClass": "PriceClass_All",
                "restrictions": {
                    "geoRestriction": {
                        "restrictionType": "none",
                        "quantity": 0
                    }
                },
                "isIPV6Enabled": true,
                "callerReference": "1578329170895",
                "continuousDeploymentPolicyId": "",
                "enabled": true,
                "defaultCacheBehavior": {
                    "targetOriginId": "d111111abcdef8",
                    "minTTL": 0,
                    "compress": false,
                    "maxTTL": 31536000,
                    "functionAssociations": {"quantity": 0},
                    "trustedKeyGroups": {
                        "quantity": 0,
                        "enabled": false
                    },
                    "smoothStreaming": false,
                    "fieldLevelEncryptionId": "",
                    "defaultTTL": 86400,
                    "lambdaFunctionAssociations": {"quantity": 0},
                    "viewerProtocolPolicy": "redirect-to-https",
                    "forwardedValues": {
                        "cookies": {"forward": "none"},
                        "queryStringCacheKeys": {"quantity": 0},
                        "queryString": false,
                        "headers": {
                            "quantity": 1,
                            "items": ["*"]
                        }
                    },
                    "trustedSigners": {
                        "enabled": false,
                        "quantity": 0
                    },
                    "allowedMethods": {
                        "quantity": 2,
                        "items": [
                            "HEAD",
                            "GET"
                        ],
                        "cachedMethods": {
                            "quantity": 2,
                            "items": [
                                "HEAD",
                                "GET"
                            ]
                        }
                    }
                },
                "staging": false,
                "origins": {
                    "quantity": 1,
                    "items": [
                        {
                            "originPath": "",
                            "connectionTimeout": 10,
                            "customOriginConfig": {
                                "originReadTimeout": 30,
                                "hTTPSPort": 443,
                                "originProtocolPolicy": "https-only",
                                "originKeepaliveTimeout": 5,
                                "hTTPPort": 80,
                                "originSslProtocols": {
                                    "quantity": 3,
                                    "items": [
                                        "TLSv1",
                                        "TLSv1.1",
                                        "TLSv1.2"
                                    ]
                                }
                            },
                            "id": "d111111abcdef8",
                            "domainName": "d111111abcdef8.cloudfront.net",
                            "connectionAttempts": 3,
                            "customHeaders": {"quantity": 0},
                            "originShield": {"enabled": false},
                            "originAccessControlId": ""
                        }
                    ]
                },
                "comment": "HIDDEN_DUE_TO_SECURITY_REASONS"
            },
            "aliasICPRecordals": [
                {
                    "cNAME": "alejandro_rosalez.awsps.myinstance.com",
                    "iCPRecordalStatus": "APPROVED"
                },
                {
                    "cNAME": "cross-testing.alejandro_rosalez.awsps.myinstance.com",
                    "iCPRecordalStatus": "APPROVED"
                },
                {
                    "cNAME": "*.alejandro_rosalez.awsps.myinstance.com",
                    "iCPRecordalStatus": "APPROVED"
                }
            ],
            "aRN": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE",
            "status": "InProgress",
            "lastModifiedTime": "Feb 2, 2024 7:26:01 PM",
            "activeTrustedKeyGroups": {
                "enabled": false,
                "quantity": 0
            },
            "inProgressInvalidationBatches": 0
        },
        "eTag": "E1YHBLAB2BJY1G"
    },
    "requestID": "4e6b66f9-d548-11e3-a8a9-73e33example",
    "eventID": "5ab02562-0fc5-43d0-b7b6-90293example",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "apiVersion": "2020_05_31",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "cloudfront.amazonaws.com"
    },
    "sessionCredentialFromConsole": "true"
}
```

### Contoh: UpdateKeys
<a name="example-cloudfront-kvs-cloudtrail-log"></a>

Contoh berikut menunjukkan CloudTrail peristiwa yang menunjukkan [UpdateKeys](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_UpdateKeys.html)operasi.

Untuk panggilan ke CloudFront KeyValueStore API, `eventSource` itu `edgekeyvaluestore.amazonaws.com` bukan`cloudfront.amazonaws.com`.

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:role-session-name",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/role-session-name",
        "accountId": "111122223333",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2023-11-01T23:41:14Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2023-11-01T23:41:28Z",
    "eventSource": "edgekeyvaluestore.amazonaws.com",
    "eventName": "UpdateKeys",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "3.235.183.252",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36,
    "requestParameters": {
        "kvsARN": "arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "ifMatch": "KV3O6B1CX531EBP",
        "deletes": [
            {"key": "key1"}
        ]
    },
    "responseElements": {
        "itemCount": 0,
        "totalSizeInBytes": 0,
        "eTag": "KVDC9VEVZ71ZGO"
    },
    "requestID": "5ccf104c-acce-4ea1-b7fc-73e33example",
    "eventID": "a0b1b5c7-906c-439d-9925-90293example",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::CloudFront::KeyValueStore",
            "ARN": "arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "111122223333",
    "eventCategory": "Data",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "111122223333.cloudfront-kvs.global.api.aws"
    }
}
```

Untuk informasi tentang konten CloudTrail rekaman, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) di *Panduan AWS CloudTrail Pengguna*.