使用WebTracking采集前端日志

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

集成日志服务WebTracking SDK,可采集前端应用的用户行为、问题定位、性能分析等关键数据,并将其安全、实时地上传至云端进行统一分析。

背景介绍

业务痛点:为深入分析用户行为,企业需持续采集前端日志,如设备类型、页面访问路径、点击与滚动等交互事件。传统做法是前端将日志发送至业务服务器,再由后端转发至日志系统,不仅消耗业务服务的网络带宽与计算资源,还可能因链路延长导致日志延迟,且在高并发场景下易成为性能瓶颈。
解决方案:阿里云日志服务通过 WebTracking 能力,允许前端应用直接将日志写入 SLS,无需经过业务服务器。该方式消除了中转环节,在保障高并发采集能力的同时,显著降低业务系统负载并提升日志上报的实时性。目前,WebTracking 支持以下两种接入方案,推荐优先采用STS安全直传模式:

  • STS 安全直传模式(推荐)
    前端通过企业后端获取阿里云 STS 颁发的临时安全令牌(含临时 AccessKey、SecurityToken 和受限权限策略),并使用该令牌向 SLS 发起带签名的日志写入请求。凭证具备时效性和最小权限,可有效防范因前端配置泄露导致的日志伪造或数据污染,适用于生产环境。

  • 匿名直传模式
    前端直接通过公开的 WebTracking Endpoint 写入日志,无需身份凭证,配置简单、接入快速。但需开启 Logstore 的匿名写入权限,一旦 Project 或 Logstore 信息泄露,可能被恶意利用,存在数据污染风险,仅建议用于测试环境。

准备云资源

开始采集日志前,需先创建用于存储和管理日志的基础资源。

步骤一:创建Project

Project 是日志服务的资源管理单元,用于隔离不同业务。

操作路径:登录日志服务控制台,单击创建Project

配置项:

  • 所属地域:根据日志来源选择,创建后不可修改。

  • Project名称:阿里云内全局唯一,创建后不可修改。

  • 其他配置保持默认,单击创建

步骤二:创建Logstore

Logstore 是日志的存储单元,所有前端日志都将写入此处。

操作路径: 进入目标 Project,在左侧导航栏,选择日志存储image, 单击 +。

配置项:

  • Logstore名称:在Project内唯一,创建后不可修改,如 web-tracking-logstore

  • Logstore类型:根据规格对比选择标准型或查询型。

  • 计费模式

    • 按使用功能计费:适合日志量小或开发测试的场景。

    • 按写入数据量计费:适合日志量稳定且需要长期分析的场景。

  • 数据保存时间:默认为30天(支持1~3650 天)。

  • 其他配置保持默认,单击确定

STS 安全直传模式(推荐)

此方案通过引入后端凭证服务解决前端密钥安全问题,是生产环境部署的推荐方案。

工作原理

前端应用不保存长期密钥,而是向您所部署的STS服务(通常位于业务服务器)请求签发临时安全凭证。WebTracking SDK 使用该凭证上传日志,凭证默认有效期为60分钟,到期自动失效,安全可控。

image
  1. 客户端请求凭证:前端应用向业务服务器发起请求,申请用于上传日志的临时访问凭证。

  2. 服务器验证并获取临时凭证:业务服务器验证请求合法性后,使用预配置的RAM用户身份,调用阿里云STSAssumeRole接口,申请扮演一个具备SLS写入权限的RAM角色。

  3. STS签发临时凭证:STS验证角色权限后,生成包含AccessKey ID、AccessKey SecretSTS Token等信息的临时凭证。

  4. 服务器下发凭证:业务服务器将临时凭证返回给前端应用。

  5. 客户端上传日志:客户端使用该临时凭证,通过WebTracking SDK将采集到的日志上传至指定Logstore。

步骤一:配置RAM权限体系

此步骤为后端凭证服务和前端SDK分别创建安全的身份和权限,遵循权限最小化原则。

1. 创建供前端应用扮演的RAM角色

此角色是一个没有长期密钥的虚拟身份,专门用于被临时扮演以获取日志写入权限。

1.1 创建RAM角色

操作路径: 登录RAM控制台,在左侧导航栏,选择身份管理 > 角色,单击创建角色

配置说明:

  • 信任主体类型:选择云账号

  • 信任主体名称:选择当前云账号或指定其他云账号。

  • 单击确定,输入角色名称sls-web-tracking

1.2 创建仅允许写入日志的权限策略

此策略精确地限制了上述角色只能向指定的 Logstore 写入日志。

操作路径:在左侧导航栏,选择权限管理 > 权限策略,单击创建权限策略

配置说明:

  • 使用脚本编辑模式,粘贴以下脚本,并将<Project名称><Logstore名称>替换为实际的Project、Logstore名称。

    {
      "Version":"1",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "log:PostLogStoreLogs",
            "log:PutLogs"
          ],
          "Resource":[
            "acs:log:*:*:project/<Project名称>/logstore/<Logstore名称>"
          ]
        }
      ]
    }
  • 单击确定,输入策略名称post-logs-policy,完成创建。

1.3 为RAM角色授予日志写入权限

将上一步创建的写入权限赋予前端扮演的角色。

操作路径:在左侧导航栏,选择身份管理 > 角色,单击目标角色名称,进入角色详情页,在权限管理模块单击新增授权

配置说明:

  • 新增授权面板中,搜索并选中上一步创建的自定义权限策略(sls-logstore-write-policy)。

  • 单击确认授权,完成权限绑定。

2. 创建供后端服务使用的RAM用户

此用户拥有一个长期 AccessKey,用于向 STS 服务发起扮演角色的请求。

2.1 创建RAM用户

操作路径:  登录RAM控制台,在左侧导航栏,选择身份管理 > 用户,单击创建用户

配置说明:

  • 登录名称:仅支持英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符,如:sls-token-service

  • 访问方式:勾选使用永久 AccessKey 访问

  • 其余配置保持默认,单击确定,完成创建,并保存 AccessKey ID 和 AccessKey Secret信息。

    AccessKey Secret 仅在创建时显示一次,不支持后续查询,请务必立即保存至安全位置。
2.2 为RAM用户授予角色扮演的权限

操作路径:单击目标用户名称,进入用户详情页,切换到权限管理页签,单击新增授权

配置说明:

  • 权限策略模块,勾选AliyunSTSAssumeRoleAccess策略。

  • 其余配置保持默认,单击确认新增授权,完成权限绑定。

小结:后端服务使用 RAM 用户(AK/SK)扮演 sls-web-tracking 角色,生成临时安全凭证返回给前端应用,WebTracking SDK 使用临时凭证安全上传日志。

步骤二:搭建后端STS临时凭证服务

需搭建一个后端接口,用于接收前端的凭证请求,并安全地返回 STS 临时凭证,以下以Python + Flask 为例。

您可根据实际技术栈参考附录一:多语言STS示例,选择 Java、Node.js等其他语言实现。

1. 准备服务器环境

在实际部署时,您可以将调用STS服务的接口集成到自己的业务服务器中,而无需单独准备服务器,也可以将接口单独部署,只需确保该服务器满足如下要求:

  • 前端应用可通过 HTTP(S) 访问该服务器。

  • 安装Python3环境,推荐Python3.8及以上版本。

执行如下命令,安装调用阿里云STS服务接口所需的依赖库。

# 安装 Flask Web 框架及阿里云 SDK 相关的依赖库
pip3 install Flask==3.1.2
pip3 install aiohttp==3.8.4
pip3 install alibabacloud-credentials==0.3.2
pip3 install alibabacloud-sts20150401==1.1.3
pip3 install alibabacloud-tea==0.3.2
pip3 install alibabacloud-tea-openapi==0.3.7
pip3 install alibabacloud-tea-util==0.3.8
pip3 install alibabacloud-tea-xml==0.0.2

2. 编写后端STS服务代码

创建一个HTTP接口 /get_sts_token,用于生成并返回STS临时凭证。

2.1 创建项目目录与文件
# 创建并进入项目目录
mkdir my_web_sample
cd my_web_sample
touch main.py
2.2 编辑main.py文件

请将以下代码粘贴至 main.py 文件,并将 <YOUR_ROLE_ARN> 替换为RAM 角色 sls-web-tracking 对应的 ARN, <YOUR_ROLE_SESSION_NAME> 替换为自定义的会话名称(例如role_session_test)。

import json
from flask import Flask, render_template
from alibabacloud_tea_openapi.models import Config
from alibabacloud_sts20150401.client import Client as Sts20150401Client
from alibabacloud_sts20150401 import models as sts_20150401_models
from alibabacloud_credentials.client import Client as CredentialClient

app = Flask(__name__)

# ================== 用户配置区 ==================
# 替换为您的 RAM 角色 ARN,格式:acs:ram::${accountId}:role/${roleName}
role_arn_for_sls_upload = '<YOUR_ROLE_ARN>'

# 设置角色会话名称(建议唯一标识请求来源)
role_session_name = '<YOUR_ROLE_SESSION_NAME>'  # 如:sls-web-session-001

# STS服务所在地域,例如cn-hangzhou。
region_id = 'cn-hangzhou'
# ==============================================

@app.route("/")
def hello_world():
    return render_template('index.html')

@app.route('/get_sts_token', methods=['GET'])
def get_sts_token():
    """
    接口:/get_sts_token
    方法:GET
    功能:调用 STS AssumeRole 接口获取临时安全令牌
    返回:JSON 格式的 Credentials 对象
    """
    # 初始化 CredentialClient 时不指定参数,代表使用默认凭据链。
    # 在本地运行程序时,可以通过环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET 指定 AK;
    # 在 ECS\ECI\容器服务上运行时,可以通过环境变量 ALIBABA_CLOUD_ECS_METADATA 来指定绑定的实例节点角色,SDK 会自动换取 STS 临时凭证。
    config = Config(
        region_id=region_id,
        credential=CredentialClient()
    )
    sts_client = Sts20150401Client(config=config)

    # 构造 AssumeRole 请求
    assume_role_request = sts_20150401_models.AssumeRoleRequest(
        role_arn=role_arn_for_sls_upload,
        role_session_name=role_session_name,
    )
      
    # 调用 STS 获取临时凭证
    response = sts_client.assume_role(assume_role_request)
    
    token = json.dumps(response.body.credentials.to_map())
    return token


app.run(host="0.0.0.0", port=80)

3. 启动后端服务

执行如下命令,使用步骤一中创建的RAM用户的访问密钥启动服务:

ALIBABA_CLOUD_ACCESS_KEY_ID=<YOUR_AK_ID> 
ALIBABA_CLOUD_ACCESS_KEY_SECRET=<YOUR_AK_SECRET> 
python3 main.py

4. 验证接口是否正常工作

发送测试请求:

curl http://<服务器公网IP地址>/get_sts_token

成功响应示例:

{
  "AccessKeyId": "STS.L4xxxxxx",
  "AccessKeySecret": "Dcyyyyyyyy",
  "Expiration": "2025-04-05T10:30:00Z",
  "SecurityToken": "CAISzxxxxxxxxxxx..."
}

验证要点:

  • 返回字段包含 AccessKeyIdAccessKeySecretSecurityToken

  • AccessKeyId 以 STS. 开头,表示是临时凭证。

  • Expiration 表示过期时间,应在合理范围内。

步骤三:前端集成WebTracking SDK

在前端应用(浏览器或小程序)中集成 SDK,并配置 STS 插件以实现安全授权和日志上报。完整示例工程请参见附录二:前端应用示例工程

1. 安装SDK依赖

使用 npm 安装 WebTracking SDK 及其 STS 插件:

npm install --save @aliyun-sls/web-track-browser
npm install --save @aliyun-sls/web-sts-plugin

2. 初始化 SDK 并配置 STS 身份验证

在前端项目中创建一个用于初始化日志采集器的 JavaScript 文件,例如index.js。该文件负责初始化 SlsTracker 实例,配置 STS 临时凭证插件。

2.1 引入核心模块
import SlsTracker from "@aliyun-sls/web-track-browser";
import createStsPlugin from "@aliyun-sls/web-sts-plugin";
2.2 配置日志服务基础信息

请根据您的实际资源信息填写以下参数:

const opts = {
  host: "${endpoint}", // 所在地域的服务入口。例如cn-hangzhou.log.aliyuncs.com
  project: "${project}", // Project 名称
  logstore: "${logstore}", // Logstore 名称
  time: 10, // 发送日志的时间间隔,默认是10秒
  count: 10, // 发送日志的数量大小,默认是10条
  topic: "topic", // 自定义日志主题
  source: "source",
  tags: {
    tags: "tags",
  },
};
2.3 配置STS插件以实现安全授权

为保障安全性,前端应用不应持有长期 AccessKey。推荐通过后端服务获取临时安全令牌(STS Token),并通过插件动态刷新。

const stsOpt = {
  accessKeyId: "",
  accessKeySecret: "",
  securityToken: "",
  
  // 刷新 STS Token 的异步函数
  refreshSTSToken: () =>
    new Promise((resolve, reject) => {
      const xhr = new window.XMLHttpRequest();
      xhr.open("GET", "http://<ECS实例公网IP地址>/get_sts_token", true);
      xhr.send();
      
      xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            let credential = JSON.parse(xhr.response);
            // 更新临时凭证
            stsOpt.accessKeyId = credential.AccessKeyId;
            stsOpt.accessKeySecret = credential.AccessKeySecret;
            stsOpt.securityToken = credential.SecurityToken;
            resolve();
          } else {
            reject("Wrong status code.");
          }
        }
      };
    }),
   // (可选)自定义刷新频率,默认 5 分钟(300000ms)
  // refreshSTSTokenInterval: 300000,
  
  // (可选)设置 token 过期前多久提前刷新(单位毫秒)
  // stsTokenFreshTime: undefined,
};
2.4 初始化Tracker实例并启用STS插件
// 创建 tracker 实例
const tracker = new SlsTracker(opts);

// 创建并注册 sts 插件
const stsPlugin = createStsPlugin(stsOpt);
tracker.useStsPlugin(stsPlugin);

3. 在业务代码中上报日志

在需要追踪用户行为的地方,调用 tracker.send() 方法。

浏览器端

在 Web 页面,通过标准 DOM 事件绑定机制捕获用户行为,并发送自定义日志。

3.1 监听用户交互事件

示例:记录用户登录行为

document.getElementById("loginButton").addEventListener("click", () => {
  const username = document.getElementById("username").value;
  
  tracker.send({
    eventType: "login",
    username: username,
  });
  
  console.log("Login event tracked for:", username);
});
3.2 在HTML中引用脚本

确保 JavaScript 文件被正确加载。建议使用模块化方式导入:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <title>用户行为监控示例</title>
</head>
<body>
  <input type="text" id="username" placeholder="请输入用户名" />
  <button id="loginButton">登录</button>

  <!-- 使用模块化脚本 -->
  <script type="module" src="/static/js/index.js"></script>
</body>
</html>

小程序端

在小程序页面,通过事件绑定机制捕获用户的输入和操作行为,实现交互响应与日志上报。

3.1 绑定输入与点击事件
<!-- 待办事项页面:支持输入任务名称并添加 -->
<input placeholder="请输入任务名称" bindinput="onInput" />
<button bindtap="onAddTodo">Add Todo</button>
3.2 JS 事件处理与日志上报
// 引入已初始化的 tracker 实例(建议全局单例管理)
const { tracker } = require('../../utils/tracker');

Page({
  data: {
    inputValue: ''
  },

  onInput(e) {
    this.setData({ inputValue: e.detail.value });
  },

  onAddTodo() {
    const todoTitle = this.data.inputValue.trim();
    if (!todoTitle) return;

    // 上报“添加待办”事件
    tracker.send({
      eventType: "add_todo",
      title: todoTitle,
      timestamp: Date.now(),
      platform: "mini-program",
      appId: my.getAppId ? my.getAppId() : wx.getAccountInfoSync().miniProgram.appId
    });

    console.log('Todo added and event tracked:', todoTitle);

    // 其他业务逻辑...
    this.setData({ inputValue: '' });
  }
});

4. 运行并测试应用

启动并访问前端页面,触发用户行为事件,使 WebTracking SDK 开始采集日志并上传。

浏览器端

  1. 启动前端服务,访问前端页面:http://<服务器公网IP>

  2. 模拟用户操作(点击登录按钮)。

  3. 打开浏览器开发者工具(F12):

    • 查看 Console 输出是否显示Login event tracked for: xxx 。

    • 在 Network 面板检查是否有成功发送到 cn-xxx.log.aliyuncs.com 的 POST 请求。

小程序端

重要

本文示例仅用于功能演示,在开发者工具中忽略域名合法性。小程序正式上线前,必须配置域名检查。

  1. 在支付宝开发者工具中单击右上角的编译image

  2. 预览小程序,模拟用户操作(在Todo页面单击“Add Todo”按钮)。

  3. 查看控制台输出日志,并确认网络请求中出现对cn-xxx.log.aliyuncs.com 的 POST 请求。

5. 验证日志上报

确认前端日志已通过安全链路成功写入阿里云日志服务的Logstore。

  1. 登录日志服务控制台

  2. Project列表中,单击目标Project。

  3. 进入日志库页面,单击目标Logstore名称前的image展开目标Logstore。

  4. 单击image,进入查询/分析页面。

  5. 单击开启索引,在右侧弹窗中单击自动生成索引

  6. 系统将自动识别日志结构并生成推荐字段配置,确认无误后单击确定

  7. 开启索引后,建议等待约1分钟以确保索引生效,之后即可进行日志查询。

匿名直传模式

本方案通过开启WebTracking开关,开放Logstore的公网写入权限,允许前端直接通过SDK、HTTP请求等方式匿名上报日志。

警告

严禁用于生产环境。

  • 开启Web Tracking开关后,任何持有接入点信息的用户均可向该Logstore写入数据。

  • 适用场景:仅限于无数据安全要求的开发、测试环境,用于快速验证日志上报链路。

步骤一:开启WebTracking开关

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

  3. 日志存储 > 日志库页签中,选择目标Logstore右侧的图标 > 修改

  4. Logstore属性页面,单击修改

  5. 开启WebTracking开关,单击保存

步骤二:配置匿名采集并上报日志

支持如下四种接入方式:

  • 集成WebTracking SDK:在前端代码中引入WebTracking SDK,调用 send() 方法发送结构化日志。适用于现代 Web 和小程序应用。

  • HTTP GET请求:将日志数据拼接在 URL 参数中,通过 GET 请求直接上报。实现简单,适合调试或少量日志的轻量采集。

  • HTML标签(img):使用 <img> 标签的 src 属性发起请求,日志信息编码在 URL 中。无需 JavaScript,天然支持跨域,适用于静态页面或邮件追踪等无 JS 环境。

  • OpenAPI批量写入:通过 POST 请求调用 SLS OpenAPI,适合服务端集中上报大量数据。

WebTracking SDK

在匿名写入模式下,无需配置 STS 插件,直接初始化 SDK 即可。

安装依赖

# 浏览器端
npm install --save @aliyun-sls/web-track-browser

# 小程序端
npm install --save @aliyun-sls/web-track-mini

配置日志服务基本信息

import SlsTracker from '@aliyun-sls/web-track-browser'

const opts = {
  host: '${host}', // 所在地域的服务入口。例如cn-hangzhou.log.aliyuncs.com
  project: '${project}', // Project名称。
  logstore: '${logstore}', // Logstore名称。
  time: 10, // 发送日志的时间间隔,默认是10秒。
  count: 10, // 发送日志的数量大小,默认是10条。
  topic: 'topic',// 自定义日志主题。
  source: 'source',
  tags: {
    tags: 'tags',
  },
}

const tracker = new SlsTracker(opts)  // 创建SlsTracker对象

上报日志

上传单条日志时,每条日志单独作为一个对象Object。上传多条日志时,数据结构是包含多个对象Object的数组Array

单条日志上传

tracker.send({
  eventType:'view_product',
  productName: 'Tablet',
  price: 500
})

单条日志立即上传(timecount参数不生效)

tracker.sendImmediate({
  eventType:'view_product',
  productName: 'Tablet',
  price: 500
})

批量日志上传

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

批量日志立即上传(timecount参数不生效)

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

HTTP GET请求

将日志数据作为URL参数,通过GET 请求直接发送至日志服务接收端点。

curl --request GET 'https://${project}.${host}/logstores/${logstore}/track?APIVersion=0.6.0&key1=val1&key2=val2'
  • host:日志服务所在地域的Endpoint。更多信息,请参见服务入口

  • key1=val1&key2=val2:上传到日志服务的字段名称和字段值(Key-Value),支持设置多个字段,长度必须小于16 KB。

HTML标签(img)

通过在前端页面中嵌入一个不可见的 <img> 标签,利用浏览器自动加载图片的机制触发日志上报。

<!-- 采集自定义字段 -->
<img src='https://${project}.${host}/logstores/${logstore}/track.gif?APIVersion=0.6.0&key1=val1&key2=val2'/>
<!-- 额外采集User-Agent和Referer -->
<img src='https://${project}.${host}/logstores/${logstore}/track_ua.gif?APIVersion=0.6.0&key1=val1&key2=val2'/>
说明

使用track_ua.gif会自动采集User-AgentReferer信息。为避免浏览器缓存,建议加入时间戳参数。

OpenAPI:批量写入日志

当需要上报大量日志时,可通过调用PutWebtracking - 通过WebTracking批量写入日志接口上传多条日志。

步骤三:验证日志上报

确认前端日志已成功写入阿里云日志服务的Logstore。

  1. 登录日志服务控制台

  2. Project列表中,单击目标Project。

  3. 进入日志库页面,单击目标Logstore名称前的image展开目标Logstore。

  4. 单击image,进入查询/分析页面。

  5. 单击开启索引,在右侧弹窗中单击自动生成索引

  6. 系统将自动识别日志结构并生成推荐字段配置,确认无误后单击确定

  7. 开启索引后,建议等待约1分钟以确保索引生效,之后即可进行日志查询。

配额与限制

为保障服务稳定性,SLS WebTracking 在不同终端环境下对日志上报设置了合理的配额限制。

终端

SDK

单次请求最大数据量

单次请求最多日志条数

浏览器端

@aliyun-sls/web-track-browser

3 MB

4,096 条

小程序端

@aliyun-sls/web-track-mini

10 MB

-

  • 小程序SDK支持:微信小程序/小游戏、支付宝小程序、字节跳动小程序、钉钉小程序、QQ小程序/小游戏、百度小程序。

  • 小程序正式上线前,必须在小程序管理后台配置请求的域名合法性,将日志服务的 Endpoint(如 cn-hangzhou.log.aliyuncs.com)添加到 request 合法域名列表中。

计费说明

使用WebTracking 采集前端日志时,WebTracking 功能本身不收取额外费用,但由此产生的日志写入、存储与查询等操作可能会产生如下计费。

1. 计费模式选择

在创建 Logstore 时可选择不同的计费方式:

  • 按写入数据量计费:适合需要对日志进行长期存储、分析加工及多场景消费的复合型使用场景。

  • 按使用功能计费:适合需灵活控制成本的轻量级或阶段性使用场景。

2. 核心计费项

按写入数据量计费

  • 原始写入数据量:主要费用来源,根据上传的未压缩原始日志大小(GB)计费。此费用已包含数据写入、索引、API 调用及首月(30天)热存储。

  • 存储费用:日志存储超过30天后,会额外收取存储费。

按使用功能计费

  • 索引流量:数据写入时,按未压缩的原始日志大小收取的一次性费用,是日志可查询的前提。

  • 存储费用:从第一天开始,按压缩后的实际占用空间计费。

  • 读写流量读写次数活跃Shard租用等。

常见问题

是否可以通过 CDN 方式引入 WebTracking SDK?

支持,适用于无法使用 npm 构建流程的轻量级前端项目、静态页面或快速验证场景。

版本滞后风险:当前 CDN 托管的最高版本为 0.3.5,功能可能落后于 npm 发布的最新版本

引入方式:

  1. 在 HTML 文件的 <head> 或 <body> 标签中添加以下脚本引用。

    <script src="https://g.alicdn.com/sls/sls-js-sdk/0.3.5/web-track-browser.js"></script>
  2. SDK 加载完成后,可通过全局对象 window.SLS_Tracker 初始化 tracker 实例:

    if (window.SLS_Tracker) {
      const tracker = new SLS_Tracker({
        host: 'your-project.cn-hangzhou.log.aliyuncs.com',
        project: 'your-project',
        logstore: 'your-logstore',
        time: 10,
        count: 10
      });
    }
    

相关文档

附录一:多语言STS示例

为方便不同技术栈的开发者快速搭建后端 STS 凭证服务,阿里云提供多种语言的开源示例程序,支持 Java、Node.js、PHP、Ruby 等主流语言。这些示例基于AssumeRole接口实现,用于向前端应用安全签发临时访问令牌。

示例项目地址:Java、Node.js、PHP、Ruby

使用说明:修改项目中的 config.json 配置文件,并根据对应语言的说明启动服务。

语言

端口

Java

7080

Node.js

3000

PHP

8000

Ruby

4567

附录二:前端应用示例工程