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

前提条件

  • 已安装日志服务Go SDK,并更新到最新版本。更多信息,请参见安装Go SDK
  • 已安装proto依赖包。安装命令为go get -u github.com/gogo/protobuf/proto

背景信息

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

更多信息,请参见智能冷热分层存储

您可以通过日志服务控制台,开启智能冷热分层存储功能。具体操作,请参见开启智能冷热分层存储功能

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

本示例中,创建一个SLSColdLogstore.go文件,并调用CreateLogStore接口创建冷热分层存储库。示例如下:
package main
import (
    "fmt"
    "time"

    "github.com/aliyun/aliyun-log-go-sdk"
)
func main() {
    // 配置AccessKey、服务入口、Project名称、Logstore名称等相关信息。
    // 日志服务的服务入口。更多信息,请参见服务入口。
    // 此处以杭州为例,其它地域请根据实际情况填写。
    Endpoint := "cn-hangzhou.log.aliyuncs.com"
    // 阿里云访问密钥AccessKey。更多信息,请参见访问密钥。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。
    AccessKeyId := "your_access_key_id"
    AccessKeySecret := "your_access_key_secret"
    // RAM用户角色的临时安全令牌。此处取值为空,表示不使用临时安全令牌。更多信息,请参见授权用户角色。
    SecurityToken := ""
    // 创建日志服务Client。
    Client := sls.CreateNormalInterface(Endpoint, AccessKeyId, AccessKeySecret, SecurityToken)
    // 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, err := Client.GetLogStore(ProjectName, uLogStoreName)
    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)
    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 日志的整体生命周期,单位为天。取值范围为1~3650。如果配置为3650,表示永久保存。
ShardCount Long 2 Shard个数。取值范围为1~10。
HotTTL String 60 数据在Logstore热存储层中的存储时间,最少为30天。单位:天,取值范围为30天到ttl之间。

当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为冷存储。更多信息,请参见智能冷热分层存储