日志服务基础资源包括日志项目、日志主题等,本文档通过示例代码演示如何通过 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(10); 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。