赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 开发参考
  5. 日志服务SDK
  6. Go SDK
  7. 使用Go SDK管理事件库EventStore

使用Go SDK管理事件库EventStore

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

事件库(EventStore)是日志服务中事件数据的采集、存储和查询单元。每个EventStore隶属于一个Project,每个Project中可创建多个EventStore。本文通过代码示例介绍如何创建、修改、查询、删除EventStore等。

前提条件

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

  • 已创建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泄露,威胁您账号下所有资源的安全。

  • 已安装0.1.49及以上版本的Go SDK。具体操作,请参见安装Go SDK。

注意事项

本示例以华东1(杭州)的公网Endpoint为例,其公网Endpoint为https://cn-hangzhou.log.aliyuncs.com。如果您通过与Project同地域的其他阿里云产品访问日志服务,请使用内网Endpointhttps://cn-hangzhou-intranet.log.aliyuncs.com。关于日志服务支持的地域与Endpoint的对应关系,请参见服务入口。

示例代码

本示例中,通过调用阿里云日志服务Go SDK中的相关API实现对事件库(EventStore)的管理,包括创建、更新、列出、获取和删除操作。

package main

import (
	"fmt"
	"os"
	"strings"

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

var (
  //日志服务的服务入口。此处以杭州为例,其它地域请根据实际情况填写。
	endpoint       = "cn-hangzhou.log.aliyuncs.com"
  //日志服务的Project名称。
	project        = "ali-test-project"
  //日志服务的事件库(EventStore)名称。
	eventStoreName = "test-events"
  
  // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
	client         = sls.CreateNormalInterface(
		endpoint,
		os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
		os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
		"",
	)
)

// 创建事件库(EventStore)。
func createEventStore() {
	eventStore := &sls.LogStore{
		Name:          eventStoreName,
		TTL:           30,
		ShardCount:    2,
		AutoSplit:     true,
		MaxSplitShard: 64,
	}
	if err := client.CreateEventStore(project, eventStore); err != nil {
		panic(err)
	}
	fmt.Println(fmt.Sprintf("Create eventStore %s succcess", eventStoreName))
}

// 更新事件库(EventStore)。
func updateEventStore() {
	eventStore := &sls.LogStore{
		Name:       eventStoreName,
		TTL:        60,
		ShardCount: 2,
		AutoSplit:  false,
	}
  
  // 调用客户端的UpdateEventStore方法更新事件库。
	if err := client.UpdateEventStore(project, eventStore); err != nil {
		panic(err)
	}
	fmt.Println(fmt.Sprintf("Update eventStore %s succcess", eventStoreName))
}

// 列出所有事件库(EventStore)。
func listEventStores() {
	// 调用客户端的ListEventStore方法列出所有事件库。
  eventStores, err := client.ListEventStore(project, 0, 10)
	if err != nil {
		panic(err)
	}
	fmt.Println(fmt.Sprintf("List eventStores: %s", strings.Join(eventStores, ",")))
}

// 获取指定事件库(EventStore)的详细信息。
func getEventStore() {
  // 调用客户端的GetEventStore方法获取事件库的详细信息。
	eventStore, err := client.GetEventStore(project, eventStoreName)
	if err != nil {
		panic(err)
	}
	fmt.Println(fmt.Sprintf("Get eventStore %s success", eventStore.Name))
}

// 删除事件库(EventStore)。
func deleteEventStore() {
  // 调用客户端的DeleteEventStore方法删除事件库。
	if err := client.DeleteEventStore(project, eventStoreName); err != nil {
		panic(err)
	}
	fmt.Println(fmt.Sprintf("Delete eventStore %s success", eventStoreName))
}

func main() {
	createEventStore()
	updateEventStore()
	listEventStores()
	getEventStore()
	deleteEventStore()
}

相关文章

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号