tencent cloud

Cloud Log Service

GO SDKによるログアップロード

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 15:13:59
AI翻訳
本文では、CLSのGO SDKを使用してログアップロードを迅速に実行する方法を紹介します。SDKの使用方法の詳細については、コードリポジトリtencentcloud-cls-sdk-goを参照してください。

前提条件

TencentCloud APIキー情報であるAccessKeyIDとAccessKeySecretを作成して取得します。キー情報の取得についてはAPIキー管理にアクセスしてください。
また、キーに関連付けられたアカウントに、対応するSDKログアップロード権限が付与されていることを確認してください。

開発環境の準備

Go公式サイトを参照して、Go開発環境をダウンロードしてインストールしてください。
Goのインストール完了後、システム変数GOPATHを新規作成し、それをコードディレクトリに設定してください。

GO SDKのインストール

コマンドラインツールで、以下のコマンドを実行してGO SDKをインストールしてください。
go get github.com/tencentcloud/tencentcloud-cls-sdk-go

CLS Go SDKの導入

後続で実際にコードスクリプトを作成する際は、GoコードにログサービスGo SDKを導入する必要があります。
import (
"fmt"
"github.com/TencentCloud/tencentcloud-cls-sdk-go"
)

リクエストパラメータ

変数
タイプ
必須/任意
説明
Endpoint
String
はい
ドメイン情報です。入力時は、利用可能なリージョンのAPIアップロードログタブに記載されているドメインをご参照ください。
AccessKeyID
String
はい
TencentCloud APIキー情報です。キー情報の取得は、APIキー管理で行ってください。また、キーに関連付けられたアカウントに、対応するSDKログアップロード権限が付与されていることを確認してください。
AccessKeySecret
String
はい
TencentCloud APIキー情報です。キー情報の取得は、APIキー管理で行ってください。また、キーに関連付けられたアカウントに、対応するSDKログアップロード権限が付与されていることを確認してください。
topicId
String
はい
日志主题的 ID 信息。

ログアップロードのサンプルコード

以下のコードはGo SDKを例に、SDKを呼び出してログアップロードを実行する操作を示しています。サンプルコードは以下の通りです。
TencentCloud APIキー情報を平文でプロジェクトコードに保存することは推奨しません。環境変数を通じてTencentCloud APIキー情報を動的に取得できます。具体的な操作については、環境変数の設定を参照してください。
package main
// ログサービスGo SDKを導入します
import (
"fmt"
"github.com/tencentcloud/tencentcloud-cls-sdk-go"
"sync"
"os"
"time"
)

func main() {
producerConfig := tencentcloud_cls_sdk_go.GetDefaultAsyncProducerClientConfig()
// ドメイン名情報を入力します。入力ガイド:https://www.tencentcloud.com/document/product/614/18940#.E5.9F.9F.E5.90.8D。リンク内のAPIログアップロードタブにあるドメイン名を参照してください。
producerConfig.Endpoint = "ap-XXXXXXXXX.cls.xxxxxxx.com"
// TencentCloud APIキー情報を入力してください。キー情報の取得については、https://console.tencentcloud.com/cam/capiにアクセスしてください。
// また、キーに関連付けられたアカウントに、対応するログアップロード権限が付与されていることを確認してください。権限設定ガイド:https://www.tencentcloud.com/document/product/614/45004#.E4.BD.BF.E7.94.A8-api-.E4.B8.8A.E4.BC.A0.E6.95.B0.E6.8D.AE
// このサンプルでは環境変数から取得します。環境変数設定ガイド:https://www.tencentcloud.com/document/product/614/113851?from_cn_redirect=1
producerConfig.AccessKeyID = os.Getenv("TENCENTCLOUD_SECRET_ID")
producerConfig.AccessKeySecret = os.Getenv("TENCENTCLOUD_SECRET_KEY")
// アップロードするログのトピックIDを設定し、お客様のTopic IDに置き換えてください。
topicId := "8bbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
// 非同期プロデューサークライアントインスタンスを作成します。
producerInstance, err := tencentcloud_cls_sdk_go.NewAsyncProducerClient(producerConfig)
if err != nil {
fmt.Println(err)
return
}

// 非同期送信プログラムを起動します。
producerInstance.Start()

var m sync.WaitGroup
callBack := &Callback{}
for i := 0; i < 10; i++ {
m.Add(1)
go func() {
defer m.Done()
for i := 0; i < 1000; i++ {
// 現在のタイムスタンプとログ内容を含む新しいログを作成します。
log := tencentcloud_cls_sdk_go.NewCLSLog(time.Now().Unix(), map[string]string{"content": "hello world| I'm from XXX", "content2": fmt.Sprintf("%v", i)})
err = producerInstance.SendLog(topicId, log, callBack)
if err != nil {
fmt.Println(err)
continue
}
}
}()
}
m.Wait()
producerInstance.Close(60000)
}

type Callback struct {
}

func (callback *Callback) Success(result *tencentcloud_cls_sdk_go.Result) {
attemptList := result.GetReservedAttempts()
for _, attempt := range attemptList {
fmt.Printf("%+v \\n", attempt)
}
}

func (callback *Callback) Fail(result *tencentcloud_cls_sdk_go.Result) {
fmt.Println(result.IsSuccessful())
fmt.Println(result.GetErrorCode())
fmt.Println(result.GetErrorMessage())
fmt.Println(result.GetReservedAttempts())
fmt.Println(result.GetRequestId())
fmt.Println(result.GetTimeStampMs())
}

おわりに

上記の手順により、Tencent Cloud CLSのGo SDKを使用してログのアップロード操作を迅速に完了できます。問題が発生した場合は、お問い合わせください。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック