日志服务支持通过 SDK 投递日志到 Kafka。本文档通过示例代码演示如何通过 Go SDK 投递日志到 Kafka。
已安装日志服务 Go SDK。更多信息,请参见安装 Go SDK。
已执行以下命令安装 proto 依赖包。
go get -u github.com/gogo/protobuf/proto
已添加 VOLCENGINE_ACCESS_KEY_ID
等环境变量。环境变量的配置方式请参考配置身份认证信息。
注意
推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。
本文档通过示例代码演示如何通过 GO SDK 在指定 Project 中创建投递日志到 Kafka 的配置。相关的注意事项、费用说明,请参考概述。
package demo import ( "github.com/volcengine/volc-sdk-golang/service/tls" "os" "time" ) func CreateShipperKafkaDemo() (*tls.CreateShipperResponse, error) { // 初始化客户端,推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。详细说明请参考https://www.volcengine.com/docs/6470/1166455。 // 使用 STS 时,ak 和 sk 均使用临时密钥,且设置 VOLCENGINE_TOKEN;不使用 STS 时,VOLCENGINE_TOKEN 部分传空。 client := tls.NewClient(os.Getenv("VOLCENGINE_ENDPOINT"), os.Getenv("VOLCENGINE_ACCESS_KEY_ID"), os.Getenv("VOLCENGINE_ACCESS_KEY_SECRET"), os.Getenv("VOLCENGINE_TOKEN"), os.Getenv("VOLCENGINE_REGION")) //创建数据投递配置。 //CreateShipper API 的请求参数说明请参考https://www.volcengine.com/docs/6470/1333747。 createShipperRes, err := client.CreateShipper(&tls.CreateShipperRequest{ TopicId: "c7****", ShipperName: "testship", ShipperType: "kafka", ShipperStartTime: int(time.Now().UnixMilli()), ShipperEndTime: int(time.Now().UnixMilli()) + 3600*1000, KafkaShipperInfo: &tls.KafkaShipperInfo{ Instance: "kafka-cnngbnntswg1****", KafkaTopic: "topic-c", Compress: "none", }, ContentInfo: &tls.ContentInfo{ Format: "json", JsonInfo: &tls.JsonInfo{ Keys: []string{"__content__", "__source__", "__path__"}, Enable: true, Escape: true, }, }, }) if err != nil { return nil, err } return createShipperRes, nil }
通过 SDK 发送调用 API 的请求以后,您会收到服务端的响应,如果响应中包含 200 以外的状态码,表示接口调用失败。您可以参考各个 API 的文档查看对应的错误码信息。
本示例中涉及到的 API 接口如下。您可以参考 API 文档查看对应接口的详细信息。
API | 说明 |
---|---|
调用接口 CreateShipper 创建投递配置。 | |
调用接口 DeleteShipper 删除指定的投递配置。 | |
调用接口 ModifyShipper 修改指定的投递配置。 | |
调用接口 DescribeShipper 获取投递配置的详细信息。 | |
调用接口 DescribeShippers 获取投递配置列表。 |