全部产品
Search
文档中心

Simple Log Service:Gunakan Plugin STS dari SDK pelacakan web untuk JavaScript untuk mengunggah log

更新时间:Jul 06, 2025

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:

  1. Browser meminta kredensial identitas sementara (token STS) dari server bisnis.

  2. Server layanan meminta token STS dari layanan STS.

    1. Pasangan AccessKey dari Pengguna Resource Access Management (RAM) dikonfigurasi di server, dan pengguna RAM diberi kebijakan AliyunSTSAssumeRoleAccess.

    2. Server menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi AssumeRole dari STS guna mendapatkan token STS dari Peran RAM. Anda dapat menggunakan parameter Policy dari AssumeRole untuk membatasi izin berbagai token STS berdasarkan pengguna atau perangkat.

  3. STS mengembalikan token STS ke server bisnis.

  4. Server layanan mengembalikan token STS ke browser.

  5. Browser menggunakan token STS yang diperoleh untuk mengasumsikan Peran RAM dan mengunggah log yang dikumpulkan dari browser ke Logstore.

  6. Simple Log Service mengembalikan respons ke browser setelah log diunggah.

Prasyarat

Langkah 1: Instal dan konfigurasikan SDK

Penting
  1. Instal Node.js.

  2. Jalankan perintah berikut di server bisnis untuk menginstal dependensi.

    npm install --save @aliyun-sls/web-track-browser
    npm install --save @aliyun-sls/web-sts-plugin
  3. Tambahkan 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, dan SecurityToken.

    • Dalam parameter input operasi AssumeRole, DurationSeconds menentukan periode validitas token dan Policy menentukan 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

  1. Masuk ke konsol Simple Log Service.

  2. Di bagian Proyek, klik proyek yang Anda inginkan.

  3. Di tab Log Storage > Logstores, klik logstore yang Anda inginkan. Lalu klik Consumption Preview untuk melihat log.

image

Jika Anda perlu melakukan analisis kueri pada log, lihat Panduan Kueri dan Analisis Log.

API

  1. Panggil operasi CreateIndex untuk membuat indeks teks penuh atau indeks bidang. Jika Anda ingin menggunakan pernyataan SELECT, Anda harus membuat indeks bidang.

  2. Panggil operasi GetLogsV2 untuk menanyakan log dalam logstore. Hasil yang dikembalikan adalah array log. Setiap elemen dalam array adalah log.

Referensi

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.