赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 开发参考
  5. 日志服务SDK
  6. Go SDK
  7. 使用Go SDK创建分层存储Logstore

使用Go SDK创建分层存储Logstore

  • Go SDK
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍通过Go SDK创建分层存储Logstore的代码示例。

前提条件

  • 已开通日志服务。更多信息,请参见开通日志服务。

  • 已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。

  • 已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见在Linux、macOS和Windows系统配置环境变量。

    重要
    • 阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。

    • 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

  • 已安装日志服务Go SDK。更多信息,请参见安装Go SDK。

  • 已安装proto依赖包。安装命令为go get -u github.com/gogo/protobuf/proto。

背景信息

日志服务提供智能分层存储功能,降低您长周期存储的成本,并同时保证日志的查询、分析、可视化、告警、投递和加工等能力不受影响。更多信息,请参见管理智能存储分层。

创建分层存储Logstore的代码示例

本示例中,创建一个SLSColdLogstore.go文件,并调用CreateLogStore接口创建分层存储库。示例如下:

package main

import (
	"fmt"
	"os"
	"time"

	sls "github.com/aliyun/aliyun-log-go-sdk"
)

func main() {
	// 日志服务的服务入口。此处以杭州为例,其它地域请根据实际情况填写。
	Endpoint := "cn-hangzhou.log.aliyuncs.com"
	// 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
	AccessKeyId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
	AccessKeySecret := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
	// RAM用户角色的临时安全令牌。此处取值为空,表示不使用临时安全令牌。更多信息,请参见授权用户角色。
	SecurityToken := ""
	// 创建日志服务Client。
	provider := sls.NewStaticCredentialsProvider(AccessKeyId, AccessKeySecret, SecurityToken)
	Client := sls.CreateNormalInterfaceV2(Endpoint, provider)
	// Project名称。
	ProjectName := "aliyun-test-project"
	// Logstore名称。
	LogStoreName := "aliyun-test-logstore"

	err := Client.CreateLogStore(ProjectName, LogStoreName, 2, 2, true, 64)
	if err != nil {
		panic(err)
	}
	// 创建logstore
	logstore, err := Client.GetLogStore(ProjectName, LogStoreName)
	if err != nil {
		panic(err)
	}
	fmt.Println("create logstore successfully:", logstore.Name)
	// 更新热存储层数据保存时间为61天。
	updateLogstore := &sls.LogStore{
		Name:        LogStoreName,
		TTL:         80,
		ShardCount:  10,
		AutoSplit:   false,
		WebTracking: true,
		HotTTL:      61,
	}
	err = Client.UpdateLogStoreV2(ProjectName, updateLogstore)
	if err != nil {
		panic(err)
	}
	fmt.Println("update logstore suecessed")
	fmt.Println("Prepare to delete the logstore after 30 seconds")
	time.Sleep(30 * time.Second)
	// 删除ogstore
	err = Client.DeleteLogStore(ProjectName, LogStoreName)
	if err != nil {
		panic(err)
	}
	fmt.Println("Delete Logstore successfully")
}

调用UpdateLogStoreV2接口更新Logstore并设置分层存储参数,UpdateLogStoreV2接口参数说明如下表所示。

参数名称

类型

是否必选

示例

说明

ProjectName

String

是

aliyun-test-project

Project名称。

在创建Client时,已定义project_name,此处无需配置。

LogStoreName

String

是

aliyun-test-logstore

Logstore名称。

在创建Client时,已定义logstore_name,此处无需配置。

TTL

Long

是

3000

数据在Logstore中的保存时间。单位:天,取值范围:1~3000。超过该时间后,数据会被删除。

警告

当日志保存时间达到您所设置的保存时间后,日志将被删除。

ShardCount

Long

是

2

Shard个数。取值范围为1~10。

HotTTL

String

是

60

数据在Logstore热存储层中的存储时间,最少为7天。单位:天,取值范围:7~3000。

当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为低频存储(原冷存储)。

相关文章

Go SDK概述 2025-04-22 10:33

日志服务Go SDK封装了日志服务的所有API接口。您可以通过日志服务Go SDK方便地调用日志服务的所有API接口。 版本说明

安装Go SDK 2025-04-22 10:33

使用Go SDK进行日志服务各类操作前,您需要安装Go SDK。本文介绍Go SDK的安装方法。 前提条件

初始化日志服务Go SDK 2025-04-22 10:33

Client是日志服务Go SDK的客户端,它为调用者提供了一系列的方法,可以用来创建Project和Logstore、写入日志、读取日志等。使用Go SDK发起请求,您需要初始化一个Client实例,并根据需要修改默认配置项。 前提条件 已安装日志服务Go SDK。

Go SDK快速入门 2025-04-22 10:33

本文介绍如何快速使用日志服务Go SDK完成常见操作,包括创建项目(Project)、创建日志库(Logstore)、写入日志和查询日志等。 前提条件

使用Go SDK创建分层存储Logstore 2025-04-22 10:33

本文介绍通过Go SDK创建分层存储Logstore的代码示例。 前提条件

通过Go SDK管理告警 2025-04-22 10:33

本文介绍通过Go SDK使用告警的代码示例。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号