日志服务基础资源包括日志项目、日志主题等,本文档通过示例代码演示如何通过 SDK 创建日志项目、日志主题并配置索引。
VOLCENGINE_ACCESS_KEY_ID
等环境变量。环境变量的配置方式请参考配置身份认证信息。注意
推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。
本文档通过示例代码演示如何通过 SDK 在指定地域下创建日志项目、日志主题并配置索引。日志项目所在的地域与初始化 Client 时填写的地域一致。创建日志主题时,推荐开启自动分裂分区,在业务突发大流量的场景中避免数据读写速度受限于分区数量。本文以同时开启全文索引和键值索引为例,您可以根据日志字段及检索分析需求按需设置索引,关于设置索引的详细说明请参考配置索引。
创建日志项目、日志主题并配置索引的示例代码如下。
package com.volcengine.example.tls.demo;
import com.volcengine.model.tls.*;
import com.volcengine.model.tls.exception.LogException;
import com.volcengine.model.tls.request.*;
import com.volcengine.model.tls.response.*;
import com.volcengine.service.tls.TLSLogClient;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws LogException {
// 初始化客户端,推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。详细说明请参考https://www.volcengine.com/docs/6470/1166455
// 使用 STS 时,ak 和 sk 均使用临时密钥,且设置 VOLCENGINE_TOKEN;不使用 STS 时,VOLCENGINE_TOKEN 部分传空
ClientConfig clientConfig = new ClientConfig(System.getenv("VOLCENGINE_ENDPOINT"), System.getenv("VOLCENGINE_REGION"),
System.getenv("VOLCENGINE_ACCESS_KEY_ID"), System.getenv("VOLCENGINE_ACCESS_KEY_SECRET"), System.getenv("VOLCENGINE_TOKEN"));
TLSLogClient client = ClientBuilder.newClient(clientConfig);
// 创建日志项目
// 请根据您的需要,填写ProjectName和可选的Description;请您填写和初始化client时一致的Region;
// CreateProject API的请求参数规范请参阅https://www.volcengine.com/docs/6470/112174
CreateProjectRequest createProjectRequest = new CreateProjectRequest("project-name", "region", "description");
CreateProjectResponse createProjectResponse = client.createProject(createProjectRequest);
String projectID = createProjectResponse.getProjectId();
// 创建日志主题
// 请根据您的需要,填写ProjectId、TopicName、Ttl、Description、ShardCount、AutoSplit、MaxSplitShard、EnableTracking等参数值
// CreateTopic API的请求参数规范请参阅https://www.volcengine.com/docs/6470/112180
CreateTopicRequest createTopicRequest = new CreateTopicRequest();
createTopicRequest.setProjectId(projectID);
createTopicRequest.setTopicName("topic-name");
createTopicRequest.setTtl(30);
createTopicRequest.setDescription("description");
createTopicRequest.setShardCount(2);
createTopicRequest.setAutoSplit(true);
createTopicRequest.setMaxSplitShard(50);
createTopicRequest.setEnableTracking(true);
CreateTopicResponse createTopicResponse = client.createTopic(createTopicRequest);
String topicID = createTopicResponse.getTopicId();
// 创建索引配置
// 请根据您的需要,填写TopicId,开启FullText全文索引或KeyValue键值索引或同时开启二者
// CreateIndex API的请求参数规范请参阅https://www.volcengine.com/docs/6470/112187
FullTextInfo fullText = new FullTextInfo(false, ",-;", false);
ValueInfo textValueInfo = new ValueInfo();
textValueInfo.setValueType("text");
textValueInfo.setDelimiter(",");
textValueInfo.setCaseSensitive(false);
textValueInfo.setIncludeChinese(false);
textValueInfo.setSqlFlag(false);
List<KeyValueInfo> keyValue = new ArrayList<>();
keyValue.add(new KeyValueInfo("key1", textValueInfo));
CreateIndexRequest createIndexRequest = new CreateIndexRequest(topicID, fullText, keyValue);
CreateIndexResponse createIndexResponse = client.createIndex(createIndexRequest);
}
}
通过 SDK 发送调用 API 的请求以后,您会收到服务端的响应,如果响应中包含 200 以外的状态码,表示接口调用失败。您可以参考各个 API 的文档查看对应的错误码信息。
本示例中涉及到的 API 接口如下。您可以参考 API 文档查看对应接口的详细信息。
API | 说明 |
---|---|
调用 CreateProject 接口创建一个日志项目。 | |
调用 CreateTopic 接口创建日志主题。 | |
调用 CreateIndex 接口创建索引。 |
关于日志服务基础资源管理的完整示例代码,请参考 TLS Java SDK Demo on GitHub。