Jika Anda menggunakan SDK Pelacakan Web untuk JavaScript untuk mengunggah log, Anda harus mengaktifkan fitur pelacakan web untuk Logstore, yang dapat menghasilkan catatan data kotor. Layanan Token Keamanan Alibaba Cloud (STS) memungkinkan Anda mengelola kredensial sementara ke sumber daya Alibaba Cloud Anda. Anda dapat menggunakan STS untuk mendapatkan kredensial sementara (token STS) dengan periode validitas dan izin akses yang disesuaikan. Dengan plugin STS dari SDK Pelacakan Web untuk JavaScript, Anda dapat mengunggah log tanpa perlu mengaktifkan fitur pelacakan web untuk Logstore.
Informasi latar belakang
Jika Anda tidak menggunakan STS untuk otorisasi sementara, Anda harus mengaktifkan fitur pelacakan web untuk Logstore. SDK Pelacakan Web untuk JavaScript mengunggah log yang dikumpulkan dari browser ke Logstore dari Simple Log Service, yang mungkin menghasilkan data kotor. Berikut adalah langkah-langkah proses menggunakan plugin STS dari SDK Pelacakan Web untuk JavaScript untuk mengunggah log:
Browser meminta kredensial identitas sementara (token STS) dari server bisnis.
Server layanan meminta token STS dari layanan STS.
Pasangan AccessKey dari Pengguna Resource Access Management (RAM) dikonfigurasi di server, dan pengguna RAM diberi kebijakan AliyunSTSAssumeRoleAccess.
Server menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi AssumeRole dari STS guna mendapatkan token STS dari Peran RAM. Anda dapat menggunakan parameter
Policydari AssumeRole untuk membatasi izin berbagai token STS berdasarkan pengguna atau perangkat.
STS mengembalikan token STS ke server bisnis.
Server layanan mengembalikan token STS ke browser.
Browser menggunakan token STS yang diperoleh untuk mengasumsikan Peran RAM dan mengunggah log yang dikumpulkan dari browser ke Logstore.
Simple Log Service mengembalikan respons ke browser setelah log diunggah.
Prasyarat
Pengguna RAM telah dibuat dan kebijakan AliyunSTSAssumeRoleAccess telah dilampirkan ke pengguna RAM. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM.
Untuk informasi lebih lanjut tentang cara mengonfigurasi pasangan AccessKey dari pengguna RAM dalam variabel lingkungan server bisnis, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.
Anda telah membuat Peran RAM untuk akun Alibaba Cloud tepercaya dan memberikan izin kepada Peran RAM untuk menulis data ke proyek tertentu. Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk Akun Alibaba Cloud Tepercaya dan Contoh Penggunaan Kebijakan Kustom untuk Memberikan Izin kepada Pengguna RAM.
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*" ], "Resource": "acs:log:*:*:project/<Nama proyek yang ditentukan.>/*", "Effect": "Allow" } ] }
Langkah 1: Instal dan konfigurasikan SDK
Metode npm digunakan dalam topik ini untuk menginstal SDK Pelacakan Web untuk JavaScript untuk mengumpulkan log situs web. Jika Anda ingin menggunakan metode CDN Alibaba Cloud, lihat Gunakan SDK Pelacakan Web untuk JavaScript untuk Mengumpulkan Log Situs Web.
Instal Node.js.
Jalankan perintah berikut di server bisnis untuk menginstal dependensi.
npm install --save @aliyun-sls/web-track-browser npm install --save @aliyun-sls/web-sts-pluginTambahkan kode berikut ke program Anda untuk mengonfigurasi SDK.
import SlsTracker from '@aliyun-sls/web-track-browser' import createStsPlugin from '@aliyun-sls/web-sts-plugin' const opts = { host: '${host}', // Titik akhir regional tempat Simple Log Service berada. Contoh: cn-hangzhou.log.aliyuncs.com. project: '${project}', // Nama proyek. logstore: '${logstore}', // Nama Logstore. time: 10, // Interval pengiriman log. Nilai default: 10. Satuan: detik. count: 10, // Jumlah maksimum log yang dapat dikirim dalam setiap permintaan. Nilai default: 10. topic: 'topic',// Topik kustom log. source: 'source', tags: { tags: 'tags', }, } const stsOpt = { accessKeyId: '', accessKeySecret: '', securityToken: '', // Berikut adalah contoh sederhana dari fungsi pembaruan token STS. refreshSTSToken: () => new Promise((resolve, reject) => { const xhr = new window.XMLHttpRequest() xhr.open('GET', 'localhost:7000/test/sts', true) xhr.send() xhr.onreadystatechange = () => { if (xhr.readyState === 4) { if (xhr.status === 200) { let credential = JSON.parse(xhr.response) // Tujuan dari fungsi ini adalah untuk mengonfigurasi kunci dan token sementara stsOpt. stsOpt.accessKeyId = credential.AccessKeyId stsOpt.accessKeySecret = credential.AccessKeySecret stsOpt.securityToken = credential.SecurityToken resolve() } else { reject('Kode status salah.') } } } }), // refreshSTSTokenInterval: 300000, // stsTokenFreshTime: undefined, } // Buat pelacak. const tracker = new SlsTracker(opts) // Buat plugin STS. const stsPlugin = createStsPlugin(stsOpt) // Gunakan plugin STS. tracker.useStsPlugin(stsPlugin) // Misalkan Anda ingin mengunggah satu log. tracker.send({ eventType:'view_product', productName: 'Tablet', price: 500 })Deskripsi parameter pelacakan web adalah sebagai berikut:
Parameter
Diperlukan
Deskripsi
host
Ya
Titik akhir wilayah tempat Simple Log Service berada. Dalam contoh ini, titik akhir Simple Log Service untuk wilayah China (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya. Untuk informasi lebih lanjut, lihat Titik akhir.
project
Ya
Nama proyek.
logstore
Ya
Nama Logstore.
time
Tidak
Interval pengiriman log. Nilai default: 10. Satuan: detik.
count
Tidak
Jumlah maksimum log yang dapat dikirim dalam setiap permintaan. Nilai default: 10.
topic
Tidak
Topik log. Anda dapat menentukan nilai kustom untuk parameter ini untuk memudahkan identifikasi.
source
Tidak
Sumber log. Anda dapat menentukan nilai kustom untuk parameter ini untuk memudahkan identifikasi.
tags
Tidak
Informasi tag tentang log. Anda dapat menentukan tag kustom untuk mengidentifikasi log.
Deskripsi parameter STS adalah sebagai berikut:
Parameter
Diperlukan
Deskripsi
accessKeyId
accessKeySecret
securityToken
Ya
Server bisnis menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi AssumeRole. Parameter respons termasuk
AccessKeySecret,AccessKeyId, danSecurityToken.Dalam parameter input operasi AssumeRole,
DurationSecondsmenentukan periode validitas token danPolicymenentukan ruang lingkup izin token.
refreshSTSToken
Ya
Fungsi permintaan token STS Anda, yang digunakan untuk secara berkala mendapatkan token STS untuk memperbarui bidang-bidang sebelumnya. Anda dapat menggunakan fungsi Promise/async.
refreshSTSTokenInterval
Tidak
Interval pembaruan token, dalam milidetik. Nilai default: 300.000, yang menunjukkan 5 menit.
stsTokenFreshTime
Tidak
Waktu terakhir perolehan token. Anda tidak perlu menentukan parameter ini.
Langkah 2: Unggah log
Ketika Anda mengunggah satu log, log tersebut diunggah sebagai objek object terpisah. Ketika Anda mengunggah beberapa log, log tersebut diunggah sebagai array yang berisi beberapa objects.
Unggah satu log. Tipe adalah
object. Contoh:tracker.send({ eventType:'view_product', productName: 'Tablet', price: 500 })Segera unggah satu log. Parameter waktu dan hitungan tidak berlaku. Tipe adalah
object. Contoh:tracker.sendImmediate({ eventType:'view_product', productName: 'Tablet', price: 500 })Unggah beberapa log sekaligus. Tipe adalah
array. Contoh:tracker.sendBatchLogs([ { eventType: 'view_product', productName: 'Tablet', price: 500 }, { eventType: 'view_product', productName: 'Laptop', price: 1200 } ])Segera unggah beberapa log sekaligus. Parameter waktu dan hitungan tidak berlaku. Tipe adalah
array. Contoh:tracker.sendBatchLogsImmediate([ { eventType:'view_product', productName: 'Tablet', price: 500 }, { eventType:'view_product', productName: 'Laptop', price: 1200 } ])
Langkah 3: Lihat hasil unggahan
Anda dapat melihat hasil unggahan dengan menggunakan konsol atau memanggil operasi API.
Konsol
Masuk ke konsol Simple Log Service.
Di bagian Proyek, klik proyek yang Anda inginkan.
Di tab , klik logstore yang Anda inginkan. Lalu klik Consumption Preview untuk melihat log.

Jika Anda perlu melakukan analisis kueri pada log, lihat Panduan Kueri dan Analisis Log.
API
Panggil operasi CreateIndex untuk membuat indeks teks penuh atau indeks bidang. Jika Anda ingin menggunakan pernyataan SELECT, Anda harus membuat indeks bidang.
Panggil operasi GetLogsV2 untuk menanyakan log dalam logstore. Hasil yang dikembalikan adalah array log. Setiap elemen dalam array adalah log.
Referensi
Topik ini menggunakan SDK Pelacakan Web untuk JavaScript untuk mengumpulkan log situs web. Untuk informasi lebih lanjut tentang cara menggunakan SDK Pelacakan Web untuk JavaScript untuk mengumpulkan log mini program, lihat Gunakan SDK Pelacakan Web untuk JavaScript untuk Mengumpulkan Log Mini Program.
FAQ
SDK dimulai tanpa kesalahan, tetapi ketika mengirim log, ia melaporkan TypeError: Cannot read properties of undefined (reading 'sigBytes'). Apa yang harus saya lakukan jika masalah ini terjadi?
Penyebab yang mungkin: Masalah dengan enkripsi CryptoJS. Karena sulitnya memodifikasi paket pihak ketiga, kami sarankan Anda menggunakan pelacakan web untuk penulisan tanpa otentikasi. Untuk informasi lebih lanjut, lihat Gunakan Fitur Pelacakan Web untuk Mengumpulkan Log.