# コンパイルツールと依存関係をインストールします(C++が未インストールの場合は使用できます)sudo yum install gcc gcc-c++ automake autoconf libtool makesudo yum install cmake
# protobufを手動でダウンロードしますwget https://github.com/protocolbuffers/protobuf/archive/v2.6.1.tar.gz# ソースコードを解凍しますtar -xzf v2.6.1.tar.gz# 解凍後のディレクトリに移動しますcd protobuf-2.6.1# 設定ファイルを生成します。この手順の実行が進まない、またはタイムアウトエラーが発生した場合は、下記の【よくあるエラー処理】を参照してください。./autogen.sh# 設定とインストール./configure#コンパイルします。この手順は少し時間がかかる場合がありますので、しばらくお待ちください。makesudo make installsudo ldconfig
# CLS SDKをダウンロードします。git clone https://github.com/TencentCloud/tencentcloud-cls-sdk-cpp.git# ディレクトリに移動します。cd tencentcloud-cls-sdk-cpp# 依存関係をインストールします。sudo yum install boost-develsudo yum install openssl-develsudo yum install libcurl-devel# ビルドファイルを生成します。cmake .# SDKをコンパイルします。makesudo make install
sample.cppを例にすると、コードの解析は以下の通りです。実際に使用する際は、コード内のキーなどの情報を置き換えてから実行してください。# サンプルコードをコンパイルします。g++ -o sample ./cls/sample.cpp -std=c++11 -O2 -L/root/tencentcloud-cls-sdk-cpp-main -lclssdk -lcurl -lprotobuf -lssl -lcrypto -lboost_thread
error while.....エラーが発生した場合は、よくあるエラー処理を参照してください。./sample
statusCode:200 requestId: content: bodyBytes:49 header:key:Content-Length value:0 header:key:Date value:Wed, 20 Nov 2024 03:37:25 GMT header:key:X-Cls-Requestid value:e7329d6d-9a48-4091-bb0c-5cea8d1c6f48 header:key:X-Cls-Trace-Id value: header:key:x-cls-requestid value:
変数 | タイプ | 必須/任意 | 説明 |
endpoint | String | はい | |
accesskeyid | String | はい | TencentCloud APIキー情報です。キー情報の取得はAPIキー管理にアクセスしてください。また、キーに関連付けられたアカウントに、対応するSDKログアップロード権限が付与されていることを確認してください。 |
accessKeysecret | String | はい | TencentCloud APIキー情報です。キー情報の取得はAPIキー管理にアクセスしてください。また、キーに関連付けられたアカウントに、対応するSDKログアップロード権限が付与されていることを確認してください。 |
topic | String | はい | ログトピックのID情報です。 |
#include "cls/producerclient.h"#include "cls/common.h"#include "cls/cls_logs.pb.h"#include "cls/logproducerconfig.pb.h"#include <string>#include <iostream>#include <unistd.h>#include <cstdlib>#include "cls/result.h"#include "cls/error.h"using namespace tencent_log_sdk_cpp_v2;using namespace std;class UserResult : public CallBack{public:UserResult() = default;~UserResult() = default;void Success(PostLogStoreLogsResponse result) override { std::cout << result.Printf() << std::endl; }void Fail(PostLogStoreLogsResponse result) override{std::cout << result.Printf() << std::endl;// std::cout<<result.loggroup_.ShortDebugString().c_str()<<std::endl;}};int main(){cls_config::LogProducerConfig config;// ドメイン名情報を入力してください。入力ガイド:https://www.tencentcloud.com/document/product/614/18940#.E5.9F.9F.E5.90.8D。リンク内のAPIログアップロードタブにあるドメイン名を参照してください。config.set_endpoint("ap-xxxxxxx.cls.tencentcs.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=1config.set_acceskeyid(getenv("TENCENTCLOUD_SECRET_ID"));config.set_accesskeysecret(getenv("TENCENTCLOUD_SECRET_KEY"));// アップロードするログのトピックIDを設定し、お客様のトピックIDに置き換えてください。std::string topic = "xxxxxxxxxxxxxxxxxxxxxxxxx";auto client = std::make_shared<ProducerClient>(config);auto callback = std::make_shared<UserResult>();client->Start();// ログオブジェクトを作成します。cls::Log log;// 現在時刻をログ時間として設定します。log.set_time(time(NULL));// ログデータの内容を構築します。auto content = log.add_contents();// ログ内容のキー・バリュー情報を設定します。content->set_key("content");content->set_value("this my test");// ログを送信し、返却結果を取得します。PostLogStoreLogsResponse ret = client->PostLogStoreLogs(topic, log, callback);if(ret.statusCode != 0){cout<<ret.content<<endl;}client->LogProducerEnvDestroy();return 0;}
# ファイルをダウンロードし、解凍して名前を変更します(実行コードに合わせるため)。wget https://github.com/google/googletest/archive/release-1.5.0.tar.gztar -xzf googletest-release-1.5.0mv googletest-release-1.5.0 gtest
./autogen.shを実行します。# コマンドを実行します。./autogen.sh
./sample実行時のエラー./sample: error while loading shared libraries: libprotobuf.so.9: cannot open shared object file: No such file or directory
protobuf.soファイルの場所を確認し、以下のコマンドを実行します:whereis libprotobuf.so.9
cat /etc/ld.so.confを実行し、最初の手順のパスがあるかどうかを確認します。
ld.so.confに追加します。上図を例にすると、/usr/local/libをld.so.confに追加する必要があります。ldconfig
フィードバック