Help Center/ Cloud Search Service/ API Reference/ API V1/ Logstash/ Creating a Configuration File
Updated on 2025-08-15 GMT+08:00

Creating a Configuration File

Function

This API is used to generate a configuration file that defines a data migration solution for a Logstash cluster. Based on this configuration file, the Logstash cluster can ingest data from multiple data sources and migrate the data to the specified destinations.

Calling Method

For details, see Calling APIs.

URI

POST /v1.0/{project_id}/clusters/{cluster_id}/lgsconf/submit

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition:

Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name.

Constraints:

N/A

Value range:

Project ID of the account.

Default value:

N/A

cluster_id

Yes

String

Definition:

ID of the cluster where the configuration file is to be created. For details about how to obtain the cluster ID, see Obtaining the Cluster ID.

Constraints:

N/A

Value range:

Cluster ID.

Default value:

N/A

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Definition:

Configuration file name.

Constraints:

It can contain 4 to 32 characters. Only digits, letters, hyphens (-), and underscores (_) are allowed. The value must start with a letter.

Value range:

4 to 32 characters.

Default value:

N/A

conf_content

Yes

String

Definition:

Configuration file content.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

setting

Yes

setting object

Definition:

Configure an entity object.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

sensitive_words

No

Array of strings

Definition:

Sensitive character replacement. Enter the list of sensitive character strings to be hidden. For items that you enter in this box, the corresponding strings will be replaced with *** in the configurations.

Constraints:

You can enter a maximum of 20 strings, each with a maximum length of 512 bytes.

Value range:

N/A

Default value:

N/A

Table 3 setting

Parameter

Mandatory

Type

Description

workers

No

Integer

Definition:

Number of worker threads that will execute the Filters and Outputs stages of the pipeline in parallel.

Constraints:

N/A

Value range:

N/A

Default value:

Number of CPU cores.

batch_size

No

Integer

Definition:

Maximum number of events that a worker thread collects from inputs before attempting to execute its filters and outputs. A larger value is more effective but increases memory overhead.

Constraints:

N/A

Value range:

N/A

Default value:

125

batch_delay_ms

No

Integer

Definition:

Minimum waiting time of an event to be scheduled by the pipeline. The unit is millisecond.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

queue_type

Yes

String

Definition:

An internal queue for event buffering.

Constraints:

N/A

Value range:

  • memory: a traditional in-memory queue.

  • persisted: a disk-based ACKed persistent queue.

Default value:

N/A

queue_check_point_writes

No

Integer

Definition:

Maximum number of written events before forcing a checkpoint when persistent queues are enabled.

Constraints:

N/A

Value range:

N/A

Default value:

1024

queue_max_bytes_mb

No

Integer

Definition:

Total capacity (in MB) of a persistent queue if persistent queues are used. Make sure the disk capacity is greater than the value of this parameter.

Constraints:

N/A

Value range:

N/A

Default value:

1024

Response Parameters

Status code: 200

Request succeeded.

None

Example Requests

Configure an entity object.

POST https://{Endpoint}/v1.0/{project_id}/clusters/4f3deec3-efa8-4598-bf91-560aad1377a3/lgsconf/submit

{
  "name" : "conf1",
  "conf_content" : "xxxxxxxx",
  "setting" : {
    "workers" : 2,
    "batch_size" : 125,
    "batch_delay_ms" : 50,
    "queue_type" : "persisted",
    "queue_check_point_writes" : 1024,
    "queue_max_bytes_mb" : 1024
  }
}

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

Java

Configure an entity object.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.css.v1.region.CssRegion;
import com.huaweicloud.sdk.css.v1.*;
import com.huaweicloud.sdk.css.v1.model.*;


public class CreateCnfSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CssClient client = CssClient.newBuilder()
                .withCredential(auth)
                .withRegion(CssRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateCnfRequest request = new CreateCnfRequest();
        request.withClusterId("{cluster_id}");
        CreateCnfReq body = new CreateCnfReq();
        Setting settingbody = new Setting();
        settingbody.withWorkers(2)
            .withBatchSize(125)
            .withBatchDelayMs(50)
            .withQueueType("persisted")
            .withQueueCheckPointWrites(1024)
            .withQueueMaxBytesMb(1024);
        body.withSetting(settingbody);
        body.withConfContent("xxxxxxxx");
        body.withName("conf1");
        request.withBody(body);
        try {
            CreateCnfResponse response = client.createCnf(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

Configure an entity object.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcss.v1.region.css_region import CssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcss.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateCnfRequest()
        request.cluster_id = "{cluster_id}"
        settingbody = Setting(
            workers=2,
            batch_size=125,
            batch_delay_ms=50,
            queue_type="persisted",
            queue_check_point_writes=1024,
            queue_max_bytes_mb=1024
        )
        request.body = CreateCnfReq(
            setting=settingbody,
            conf_content="xxxxxxxx",
            name="conf1"
        )
        response = client.create_cnf(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Configure an entity object.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := css.NewCssClient(
        css.CssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateCnfRequest{}
	request.ClusterId = "{cluster_id}"
	workersSetting:= int32(2)
	batchSizeSetting:= int32(125)
	batchDelayMsSetting:= int32(50)
	queueCheckPointWritesSetting:= int32(1024)
	queueMaxBytesMbSetting:= int32(1024)
	settingbody := &model.Setting{
		Workers: &workersSetting,
		BatchSize: &batchSizeSetting,
		BatchDelayMs: &batchDelayMsSetting,
		QueueType: "persisted",
		QueueCheckPointWrites: &queueCheckPointWritesSetting,
		QueueMaxBytesMb: &queueMaxBytesMbSetting,
	}
	request.Body = &model.CreateCnfReq{
		Setting: settingbody,
		ConfContent: "xxxxxxxx",
		Name: "conf1",
	}
	response, err := client.CreateCnf(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Request succeeded.

400

Invalid request.

The client should modify the request instead of re-initiating it.

409

The request cannot be processed due to a conflict.

This status code indicates that the resource that the client attempts to create already exits, or the requested update failed due to a conflict.

412

The server did not meet one of the preconditions contained in the request.

Error Codes

See Error Codes.