Tous les produits
Search
Centre de documentation

Simple Log Service:Utiliser le plug-in STS du SDK Web Tracking pour JavaScript afin de téléverser des journaux

Dernière mise à jour :Oct 12, 2026

Pour téléverser des journaux à l'aide du SDK Web Tracking pour JavaScript, vous devez activer la fonctionnalité Web Tracking pour le Logstore. Cette opération autorise les écritures anonymes dans le Logstore et peut générer des données incorrectes. Le service Security Token Service (STS) d'Alibaba Cloud gère les autorisations d'accès temporaires. Vous pouvez utiliser STS pour obtenir des identifiants temporaires avec des périodes de validité et des autorisations d'accès personnalisées. Si vous utilisez le plug-in STS du SDK Web Tracking pour JavaScript pour téléverser des journaux, il n'est pas nécessaire d'activer la fonctionnalité Web Tracking pour le Logstore.

Contexte

image

Sans autorisation temporaire via STS, vous devez activer la fonctionnalité Web Tracking pour le Logstore, ce qui permet les écritures anonymes depuis les navigateurs et peut générer des données incorrectes. Les étapes suivantes décrivent le processus de téléversement des journaux par le plug-in STS :

  1. Un navigateur demande un identifiant temporaire (jeton STS) à un serveur métier.

  2. Le serveur de service demande un jeton STS au service STS.

    1. Une paire AccessKey de l'utilisateur RAM (Resource Access Management) est configurée sur le serveur et la politique AliyunSTSAssumeRoleAccess est attachée à l'utilisateur RAM.

    2. Le serveur utilise la paire AccessKey de l'utilisateur RAM pour appeler l'opération AssumeRole de STS afin d'obtenir le jeton STS du rôle RAM. Vous pouvez utiliser le paramètre Policy de AssumeRole pour restreindre les autorisations des différents jetons STS en fonction de l'utilisateur ou de l'appareil.

  3. STS renvoie un jeton STS au serveur métier.

  4. Le serveur de service renvoie un jeton STS au navigateur.

  5. Le navigateur utilise le jeton STS obtenu pour endosser le rôle RAM et téléverse les journaux collectés depuis le navigateur vers le Logstore.

  6. Simple Log Service renvoie une réponse au navigateur après le téléversement du journal.

Prérequis

Étape 1 : Installer et configurer le SDK

Important
  • Cette rubrique utilise la méthode npm pour installer le SDK Web Tracking pour JavaScript afin de collecter les journaux de site web. Si vous souhaitez utiliser la méthode Alibaba Cloud CDN, consultez la rubrique SDK WebTracking JavaScript.

  1. Installez Node.js.

  2. Exécutez la commande suivante sur le serveur métier pour installer les dépendances.

    npm install --save @aliyun-sls/web-track-browser
    npm install --save @aliyun-sls/web-sts-plugin
  3. Ajoutez le code suivant à votre programme pour configurer le SDK.

    import SlsTracker from '@aliyun-sls/web-track-browser'
    import createStsPlugin from '@aliyun-sls/web-sts-plugin'
    
    const opts = {
      host: '${host}', // The Simple Log Service endpoint for the region. Example: cn-hangzhou.log.aliyuncs.com.
      project: '${project}', // The name of the project. 
      logstore: '${logstore}', // The name of the Logstore. 
      time: 10, // The interval at which logs are sent. Default value: 10. Unit: seconds. 
      count: 10, // The maximum number of logs that can be sent in each request. Default value: 10. 
      topic: 'topic',// The custom topic of logs. 
      source: 'source',
      tags: {
        tags: 'tags',
      },
    }
    
    const stsOpt = {
      accessKeyId: '',
      accessKeySecret: '',
      securityToken: '',
      // The following is a simple example of an STS token refresh function.
      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)
                  // The purpose of the function is to configure the temporary key and token of stsOpt. 
                  stsOpt.accessKeyId = credential.AccessKeyId
                  stsOpt.accessKeySecret = credential.AccessKeySecret
                  stsOpt.securityToken = credential.SecurityToken
                  resolve()
                } else {
                  reject('Wrong status code.')
                }
              }
            }
          }),
      // refreshSTSTokenInterval: 300000,
      // stsTokenFreshTime: undefined,
    }
    
    // Create a tracker.
    const tracker = new SlsTracker(opts)
    // Create the STS plug-in.
    const stsPlugin = createStsPlugin(stsOpt)
    // Use the STS plug-in.
    tracker.useStsPlugin(stsPlugin)
    
    // Assume that you want to upload a single log.
    tracker.send({
      eventType:'view_product',
      productName: 'Tablet',
      price: 500
    })
    

    Le tableau suivant décrit les paramètres Web Tracking.

    Paramètre

    Obligatoire

    Description

    host

    Oui

    L'endpoint de la région où réside Simple Log Service. Dans cet exemple, l'endpoint Simple Log Service de la région Chine (Hangzhou) est utilisé. Remplacez la valeur du paramètre par l'endpoint réel. Pour plus d'informations, consultez la rubrique Endpoint.

    project

    Oui

    Le nom du projet.

    logstore

    Oui

    Le nom du Logstore.

    time

    Non

    L'intervalle d'envoi des journaux. Valeur par défaut : 10. Unité : secondes.

    count

    Non

    Le nombre maximal de journaux pouvant être envoyés dans chaque requête. Valeur par défaut : 10.

    topic

    Non

    Le sujet des journaux. Spécifiez une valeur personnalisée pour identifier les journaux.

    source

    Non

    La source des journaux. Spécifiez une valeur personnalisée pour identifier les journaux.

    tags

    Non

    Des tags personnalisés pour identifier les journaux.

    Le tableau suivant décrit les paramètres STS.

    Paramètre

    Obligatoire

    Description

    • accessKeyId

    • accessKeySecret

    • securityToken

    Oui

    • Le serveur métier utilise la paire AccessKey de l'utilisateur RAM pour appeler l'opération AssumeRole. Les paramètres de réponse incluent AccessKeySecret, AccessKeyId et SecurityToken.

    • Dans les paramètres d'entrée de l'opération AssumeRole, DurationSeconds spécifie la période de validité du jeton et Policy spécifie l'étendue des autorisations du jeton.

    refreshSTSToken

    Oui

    Une fonction qui obtient périodiquement de nouveaux jetons STS pour mettre à jour les champs d'identifiants. Prend en charge les fonctions Promise et async.

    refreshSTSTokenInterval

    Non

    L'intervalle de rafraîchissement des jetons, en millisecondes. Valeur par défaut : 300 000 (5 minutes).

    stsTokenFreshTime

    Non

    L'horodatage de l'acquisition la plus récente du jeton. Il n'est pas nécessaire de définir ce paramètre.

Étape 2 : Téléverser des journaux

Lorsque vous téléversez un seul journal, chaque journal est envoyé en tant qu'Object distinct. Lorsque vous téléversez plusieurs journaux, la structure de données est un Array contenant plusieurs éléments Object.

  • Téléversez un seul journal. Le type est Object. Exemple :

    tracker.send({
      eventType:'view_product',
      productName: 'Tablet',
      price: 500
    })
  • Téléversez immédiatement un seul journal. Les paramètres time et count ne prennent pas effet. Le type est Object. Exemple :

    tracker.sendImmediate({
      eventType:'view_product',
      productName: 'Tablet',
      price: 500
    })
  • Téléversez plusieurs journaux à la fois. Le type est Array. Exemple :

    tracker.sendBatchLogs([
      {
        eventType: 'view_product',
        productName: 'Tablet',
        price: 500
      },
      {
        eventType: 'view_product',
        productName: 'Laptop',
        price: 1200
      }
    ])
  • Téléversez immédiatement plusieurs journaux à la fois. Les paramètres time et count ne prennent pas effet. Le type est Array. Exemple :

    tracker.sendBatchLogsImmediate([
      {
        eventType:'view_product',
        productName: 'Tablet',
        price: 500
      },
      {
        eventType:'view_product',
        productName: 'Laptop',
        price: 1200
      }
    ])

Étape 3 : Consulter le résultat du téléversement

Après le téléversement des journaux dans un Logstore, vous devez Créer des index avant de pouvoir interroger et analyser les journaux.

Consultation rapide

Si aucun index n'est créé, vous pouvez cliquer sur Consumption Preview pour le Logstore afin de consulter rapidement les journaux. Pour plus d'informations, consultez la rubrique Démarrage rapide de l'interrogation et de l'analyse.

Interroger et analyser les journaux

  1. Appelez l'opération CreateIndex pour créer des index en texte intégral ou des index de champ. Si vous souhaitez utiliser l'instruction SELECT, vous devez créer des index de champ.

  2. Appelez l'opération GetLogsV2. Le résultat renvoyé est un tableau de journaux nommé Logs. Chaque élément du tableau correspond à un journal.

Références

  • Cette rubrique utilise le SDK Web Tracking pour JavaScript afin de collecter les journaux de site web. Pour plus d'informations sur l'utilisation du SDK Web Tracking pour JavaScript afin de collecter les journaux de mini-programmes, consultez la rubrique SDK WebTracking JavaScript pour mini-programmes.

FAQ

  • Le SDK démarre sans erreur, mais lors de l'envoi des journaux, il signale l'erreur TypeError: Cannot read properties of undefined (reading 'sigBytes'). Que faire ?

    Cause possible : un problème de chiffrement CryptoJS. Étant donné que le package tiers est difficile à modifier, nous recommandons d'utiliser Web Tracking pour les écritures non authentifiées. Pour plus d'informations, consultez la rubrique Collecter des journaux côté client avec WebTracking.