本文介绍通过Go SDK创建分层存储Logstore的代码示例。
前提条件
-
已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。
-
已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见配置环境变量。
重要
-
阿里云账号的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"
"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。
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 |
数据在Logstore中的保存时间。单位:天,取值范围:1~3000。超过该时间后,数据会被删除。 警告 当日志保存时间达到您所设置的保存时间后,日志将被删除。 |
ShardCount |
Long |
是 |
2 |
Shard个数。取值范围为1~10。 |
HotTTL |
String |
是 |
60 |
数据在Logstore热存储层中的存储时间,最少为7天。单位:天,取值范围:7~3000。 当数据的存储时间超过您所配置的热存储层数据保存时间后,数据将转为低频存储(原冷存储)。更多信息,请参见开启智能存储分层。 |
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/165051.html