全部产品
Search
文档中心

日志服务:初始化日志服务Go SDK

更新时间:Nov 22, 2024

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

前提条件

  • 已安装日志服务Go SDK

  • 配置访问凭证

  • 获取Endpoint

    服务接入点(Endpoint)是访问阿里云服务的入口点,通常是一个URL,它指定了服务的访问协议、主机名、端口和路径等信息,客户端可以使用这些信息与服务进行通信。日志服务的Endpoint分为:

    • 公网服务地址:从日志服务公网域名所在接口拉取数据时,会产生外网读取流量,计费信息请参见按写入数据量计费模式计费项按使用功能计费模式计费项。具体列表,请参见服务接入点

    • VPC服务地址:ECS实例和日志服务Project属于同一地域,建议使用VPC服务地址,请参见服务接入点

    • 传输加速域名:业务服务器、日志服务Project分别属于国内地域和国外地域,使用公网传输数据可能会出现网络延迟高、传输不稳定等问题,可以选择传输加速域名,请参见管理传输加速

初始化Client

接口

// 使用 ak 初始化客户端
func CreateNormalInterface(endpoint, accessKeyID, accessKeySecret, securityToken string) ClientInterface
// 使用自定义配置凭证接口初始化客户端
func CreateNormalInterfaceV2(endpoint string, credentialsProvider CredentialsProvider) ClientInterface 

请求参数

变量

类型

是否必填

说明

示例值

endpoint

String

服务接入点,具体参见获取Endpoint

cn-hangzhou.log.aliyuncs.com

accessKeyID

String

  • 如果使用AK配置访问凭证,则为阿里云账号(主账号)和RAM用户(子账号)的AccessKey ID,用于标识用户。具体参见配置访问凭证

    警告

    阿里云主账号拥有资源的全部权限,如果主账号的AK泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的RAM用户的AK。

  • 如果使用STS配置访问凭证,则为AssumeRole接口返回参数Credentials中的AccessKeyId。

LTAI5tQisap3nb5aDQ******

accessKeySecret

String

  • 如果使用AK配置访问凭证,则为阿里云账号(主账号)和RAM用户(子账号)的AccessKey Secret,用于验证您拥有该AccessKey ID的密码。具体参见配置访问凭证

  • 如果使用STS配置访问凭证,则为AssumeRole接口返回参数Credentials中的AccessKeySecret。

8IK3wR4CLBWVnhgY1DB1vttQ******

securityToken

String

  • RAM角色的STS临时访问凭证,仅当使用STS Token时需要填写,为AssumeRole接口返回参数Credentials中的SecurityToken。

  • 安全令牌(SecurityToken)的长度不固定,我们强烈建议您不要对安全令牌的最大长度做任何限制。获取STS Token的接口,请参见AssumeRole - 获取扮演角色的临时身份凭证

********

示例

使用AK初始化(V4签名)

package main

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


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")
  
  // 创建日志服务Client。
  provider := sls.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, "")
  client := sls.CreateNormalInterfaceV2(endpoint, provider)
  // 设置使用 v4 签名
  client.SetAuthVersion(sls.AuthV4)
  // 设置地域
  client.SetRegion("cn-hangzhou")
}

使用AK初始化(V1签名)

package main

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

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")
  
  // 创建日志服务Client。
  provider := sls.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, "")
  client := sls.CreateNormalInterfaceV2(endpoint, provider)
}

使用STS初始化

package main

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

func main() {
  // 日志服务的服务入口。此处以杭州为例,其它地域请根据实际情况填写。
  endpoint := "cn-hangzhou.log.aliyuncs.com"
  
  // 本示例从环境变量中获取AssumeRole接口返回参数Credentials中的AccessKeyId。
  accessKeyId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
  // 本示例从环境变量中获取AssumeRole接口返回参数Credentials中的AccessKeySecret。
  accessKeySecret := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
   // 本示例从环境变量中获取AssumeRole接口返回参数Credentials中的SecurityToken。
  securityToken := ""
  
  // 创建日志服务Client。
  provider := sls.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, securityToken)
  client := sls.CreateNormalInterfaceV2(endpoint, provider)
}

相关文档

  • 初始化Client后,您可以调用接口实现创建Project、写入日志等操作,请参见Go SDK快速入门