Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Metode pembantu umum
Halaman ini menyediakan metode pembantu tambahan di dalam CloudFront Functions. Untuk menggunakan metode ini, buat CloudFront fungsi menggunakan JavaScript runtime 2.0.
import cf from 'cloudfront';
Untuk informasi selengkapnya, lihat JavaScript fitur runtime 2.0 untuk Fungsi CloudFront.
Metadata EdgeLocation
Metode ini membutuhkan penggunaan cloudfront modul.
catatan
Anda hanya dapat menggunakan metode ini untuk fungsi permintaan pemirsa. Untuk fungsi respons pemirsa, metode ini kosong.
Gunakan JavaScript objek ini untuk mendapatkan kode bandara lokasi tepi, wilayah Cache Edge Regional yang diharapkan atau alamat IP CloudFront server yang digunakan untuk menangani permintaan. Metadata ini hanya tersedia sebagai pemicu peristiwa permintaan pemirsa.
cf.edgeLocation = { name: SEA serverIp: 1.2.3.4 region: us-west-2 }
Ob cf.edgeLocation jek dapat berisi yang berikut:
- name
-
Kode IATA tiga huruf
dari lokasi tepi yang menangani permintaan. - ServerIP
-
Alamat IPv4 atau IPv6 dari server yang menangani permintaan.
- region
-
CloudFront Regional Edge Cache (REC) yang diharapkan untuk digunakan permintaan jika ada cache yang hilang. Nilai ini tidak diperbarui jika REC yang diharapkan tidak tersedia dan REC cadangan digunakan untuk permintaan. Ini tidak termasuk lokasi Origin Shield yang digunakan, kecuali dalam kasus ketika REC utama dan Perisai Asal adalah lokasi yang sama.
catatan
CloudFront Fungsi tidak dipanggil untuk kedua kalinya ketika CloudFront dikonfigurasi untuk menggunakan failover asal. Untuk informasi selengkapnya, lihat Optimalkan ketersediaan tinggi dengan failover CloudFront asal.
metode mentah QueryString ()
Metode ini tidak memerlukan cloudFront modul.
Gunakan rawQueryString() metode untuk mengambil string kueri yang tidak diurai dan tidak diubah sebagai string.
Permintaan
function handler(event) { var request = event.request; const qs = request.rawQueryString(); }
Respons
Mengembalikan string kueri lengkap dari permintaan masuk sebagai nilai string tanpa garis depan?.
-
Jika tidak ada string kueri, tetapi
?ada, fungsi mengembalikan string kosong. -
Jika tidak ada string kueri dan
?tidak ada, fungsi kembaliundefined.
- Kasus 1: String kueri penuh dikembalikan (tanpa awalan
?) -
URL permintaan masuk:
https://example.com/page?name=John&age=25&city=BostonrawQueryString()mengembalikan:"name=John&age=25&city=Boston" - Kasus 2: String kosong dikembalikan (bila
?ada tetapi tanpa parameter) -
URL permintaan masuk:
https://example.com/page?rawQueryString()mengembalikan:"" - Kasus 3:
undefineddikembalikan (tidak ada string kueri dan tidak ada?) -
URL permintaan masuk:
https://example.com/pagerawQueryString()mengembalikan:undefined
log CustomData () metode
Untuk menggunakan metode ini, impor cloudfront modul.
Gunakan logCustomData() metode ini untuk mengirim data khusus dari CloudFront fungsi Amazon Anda ke log CloudFront akses. Data ditulis ke bidang viewer-response-log-data log viewer-request-log-data or, tergantung pada apakah fungsi dikaitkan dengan permintaan penampil atau peristiwa respons penampil.
Metode menerima argumen string tunggal. Untuk mencatat objek, gunakan JSON.stringify() untuk mengubahnya menjadi string terlebih dahulu. Contoh:
const resp_obj = JSON.stringify(some_obj); cf.logCustomData(resp_obj);
Setiap bidang mendukung hingga 800 byte data. CloudFront URL-encodes secara otomatis data sebelum menulisnya ke bidang log. CloudFront memotong data di atas 800 byte setelahnya. URL-encoding Jika fungsi Anda memang logCustomData() gil beberapa kali dalam satu eksekusi, hanya CloudFront menggunakan nilai terakhir.
Tambahkan bidang ke konfigurasi log Anda
Untuk menerima data ini di log CloudFront akses Anda, Anda harus menambahkan viewer-response-log-data bidang viewer-request-log-data atau ke konfigurasi log real-time atau pengaturan log standar (v2).
Perbedaan dari console.log ()
logCustomData()Metode ini tidak menggantikan console.log() CloudFront fungsi. Gunakan console.log() untuk mengirim baris log ke Amazon CloudWatch Logs. Gunakan cf.logCustomData() untuk menulis data khusus untuk CloudFront mengakses log (log real-time dan pen catatan standar (v2)). Anda dapat menggunakan kedua metode dalam fungsi yang sama. Untuk informasi selengkapnya, lihat CloudFront Log fungsi.
Metode ini menggunakan sintaks berikut:
cf.logCustomData(String);
contoh Log header dalam fungsi permintaan penampil
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Check if the debug header exists, if so log it if (request.headers['x-debug-header']) { // Log the debug header value cf.logCustomData("debug header found: " + request.headers['x-debug-header'].value); } return request; }