文档首页/ 安全云脑 SecMaster/ API参考/ 安全云脑 API V1/ 组件管理/ 点击保存按钮 - UpdateComponentConfiguration
更新时间:2026-02-05 GMT+08:00
分享

点击保存按钮 - UpdateComponentConfiguration

功能介绍

点击保存按钮

调用方法

请参见如何调用API

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项

URI

POST /v1/{project_id}/workspaces/{workspace_id}/components/{component_id}/configurations

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目id

component_id

String

组件id

workspace_id

String

工作空间id

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

configuration

Array of ConfigurationDetail objects

节点配置信息

表3 ConfigurationDetail

参数

是否必选

参数类型

描述

config_status

String

参数解释:

节点部署状态

  • UN_SAVED 待保存

  • SAVE_AND_UN_APPLY 待应用

  • MOVE_AND_UN_APPLY 待移除

  • APPLYING 应用中

  • FAIL_APPLY 应用失败

  • APPLIED 应用完成

约束限制

不涉及

取值范围:

  • UN_SAVED

  • SAVE_AND_UN_APPLY

  • MOVE_AND_UN_APPLY

  • APPLYING

  • FAIL_APPLY

  • APPLIED

默认值

不涉及

list

Array of FileConfiguration objects

文件配置列表

node_id

String

节点ID

node_name

String

节点名称

specification

String

规范

表4 FileConfiguration

参数

是否必选

参数类型

描述

file_name

String

文件名称

file_type

String

参数解释:

文件类型

  • JVM JVM配置文件类型

  • LOG4J2 Log4j2日志配置文件类型

  • YML YAML配置文件类型

约束限制

不涉及

取值范围:

  • JVM

  • LOG4J2

  • YML

默认值

不涉及

node_id

String

节点ID

param

Map<String,String>

参数

type

String

参数解释:

配置类型

  • HISTORY 历史版本

  • CURRENT_SAVE 当前保存

  • CURRENT_APPLY 当前使用

约束限制

不涉及

取值范围:

  • HISTORY

  • CURRENT_SAVE

  • CURRENT_APPLY

默认值

不涉及

响应参数

状态码:200

表5 响应Body参数

参数

参数类型

描述

message

String

结果详情

result

String

结果

请求示例

https://{endpoint}/v1/{project_id}/workspaces/{workspace_id}/components/{component_id}/configurations

{
  "configuration" : [ {
    "config_status" : "SAVE_AND_UN_APPLY",
    "list" : [ {
      "file_name" : "log4j2.properties",
      "file_type" : "LOG4J2",
      "node_id" : "a3478ad5xxxbf7a",
      "param" : {
        "a.eventEol" : "true"
      },
      "type" : "CURRENT_APPLY"
    }, {
      "file_name" : "jvm.options",
      "file_type" : "JVM",
      "node_id" : "a3478ad5xxxbf7a",
      "param" : {
        "-Xmx" : "2048M"
      },
      "type" : "CURRENT_APPLY"
    } ],
    "node_id" : "a3478ad5xxxbf7a",
    "node_name" : "ecs-6xx9",
    "specification" : "2U|4G|100G"
  } ]
}

响应示例

状态码:200

成功

{
  "result" : "success"
}

SDK代码示例

SDK代码示例如下。

 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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.secmaster.v1.region.SecMasterRegion;
import com.huaweicloud.sdk.secmaster.v1.*;
import com.huaweicloud.sdk.secmaster.v1.model.*;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

public class UpdateComponentConfigurationSolution {

    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);

        SecMasterClient client = SecMasterClient.newBuilder()
                .withCredential(auth)
                .withRegion(SecMasterRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdateComponentConfigurationRequest request = new UpdateComponentConfigurationRequest();
        request.withComponentId("{component_id}");
        request.withWorkspaceId("{workspace_id}");
        ConfigurationInfoDto body = new ConfigurationInfoDto();
        Map<String, String> listListParam = new HashMap<>();
        listListParam.put("-Xmx", "2048M");
        Map<String, String> listListParam1 = new HashMap<>();
        listListParam1.put("a.eventEol", "true");
        List<FileConfiguration> listConfigurationList = new ArrayList<>();
        listConfigurationList.add(
            new FileConfiguration()
                .withFileName("log4j2.properties")
                .withFileType(FileConfiguration.FileTypeEnum.fromValue("LOG4J2"))
                .withNodeId("a3478ad5xxxbf7a")
                .withParam(listListParam1)
                .withType(FileConfiguration.TypeEnum.fromValue("CURRENT_APPLY"))
        );
        listConfigurationList.add(
            new FileConfiguration()
                .withFileName("jvm.options")
                .withFileType(FileConfiguration.FileTypeEnum.fromValue("JVM"))
                .withNodeId("a3478ad5xxxbf7a")
                .withParam(listListParam)
                .withType(FileConfiguration.TypeEnum.fromValue("CURRENT_APPLY"))
        );
        List<ConfigurationDetail> listbodyConfiguration = new ArrayList<>();
        listbodyConfiguration.add(
            new ConfigurationDetail()
                .withConfigStatus(ConfigurationDetail.ConfigStatusEnum.fromValue("SAVE_AND_UN_APPLY"))
                .withList(listConfigurationList)
                .withNodeId("a3478ad5xxxbf7a")
                .withNodeName("ecs-6xx9")
                .withSpecification("2U|4G|100G")
        );
        body.withConfiguration(listbodyConfiguration);
        request.withBody(body);
        try {
            UpdateComponentConfigurationResponse response = client.updateComponentConfiguration(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());
        }
    }
}
 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
61
62
63
64
65
66
67
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdksecmaster.v1.region.secmaster_region import SecMasterRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksecmaster.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 = SecMasterClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(SecMasterRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpdateComponentConfigurationRequest()
        request.component_id = "{component_id}"
        request.workspace_id = "{workspace_id}"
        listParamList = {
            "-Xmx": "2048M"
        }
        listParamList1 = {
            "a.eventEol": "true"
        }
        listListConfiguration = [
            FileConfiguration(
                file_name="log4j2.properties",
                file_type="LOG4J2",
                node_id="a3478ad5xxxbf7a",
                param=listParamList1,
                type="CURRENT_APPLY"
            ),
            FileConfiguration(
                file_name="jvm.options",
                file_type="JVM",
                node_id="a3478ad5xxxbf7a",
                param=listParamList,
                type="CURRENT_APPLY"
            )
        ]
        listConfigurationbody = [
            ConfigurationDetail(
                config_status="SAVE_AND_UN_APPLY",
                list=listListConfiguration,
                node_id="a3478ad5xxxbf7a",
                node_name="ecs-6xx9",
                specification="2U|4G|100G"
            )
        ]
        request.body = ConfigurationInfoDto(
            configuration=listConfigurationbody
        )
        response = client.update_component_configuration(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/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 := secmaster.NewSecMasterClient(
        secmaster.SecMasterClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdateComponentConfigurationRequest{}
	request.ComponentId = "{component_id}"
	request.WorkspaceId = "{workspace_id}"
	var listParamList = map[string]string{
        "-Xmx": "2048M",
    }
	var listParamList1 = map[string]string{
        "a.eventEol": "true",
    }
	fileNameList:= "log4j2.properties"
	fileTypeList:= model.GetFileConfigurationFileTypeEnum().LOG4_J2
	nodeIdList:= "a3478ad5xxxbf7a"
	typeList:= model.GetFileConfigurationTypeEnum().CURRENT_APPLY
	fileNameList1:= "jvm.options"
	fileTypeList1:= model.GetFileConfigurationFileTypeEnum().JVM
	nodeIdList1:= "a3478ad5xxxbf7a"
	typeList1:= model.GetFileConfigurationTypeEnum().CURRENT_APPLY
	var listListConfiguration = []model.FileConfiguration{
        {
            FileName: &fileNameList,
            FileType: &fileTypeList,
            NodeId: &nodeIdList,
            Param: listParamList1,
            Type: &typeList,
        },
        {
            FileName: &fileNameList1,
            FileType: &fileTypeList1,
            NodeId: &nodeIdList1,
            Param: listParamList,
            Type: &typeList1,
        },
    }
	configStatusConfiguration:= model.GetConfigurationDetailConfigStatusEnum().SAVE_AND_UN_APPLY
	nodeIdConfiguration:= "a3478ad5xxxbf7a"
	nodeNameConfiguration:= "ecs-6xx9"
	specificationConfiguration:= "2U|4G|100G"
	var listConfigurationbody = []model.ConfigurationDetail{
        {
            ConfigStatus: &configStatusConfiguration,
            List: listListConfiguration,
            NodeId: &nodeIdConfiguration,
            NodeName: &nodeNameConfiguration,
            Specification: &specificationConfiguration,
        },
    }
	request.Body = &model.ConfigurationInfoDto{
		Configuration: &listConfigurationbody,
	}
	response, err := client.UpdateComponentConfiguration(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

成功

错误码

请参见错误码

相关文档