Creating a Log Ingestion Configuration
Function
This API is used to create a log ingestion configuration.
Calling Method
For details, see Calling APIs.
URI
POST /v3/{project_id}/lts/access-config
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. For details about how to obtain a project ID, see Obtaining the Account Tenant ID, Project Resource Set ID, Log Group ID, and Log Stream ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token obtained from IAM. For details about how to obtain a user token, see Obtaining a User Token. |
Content-Type |
Yes |
String |
Set this parameter to application/json;charset=UTF-8. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
access_config_name |
Yes |
String |
Ingestion configuration name. It should match the regular expression: ^(?!.)(?!)(?!.*?.$)[\u4e00-\u9fa5a-zA-Z0-9-.]{1,64}$. |
access_config_type |
Yes |
String |
Ingestion configuration type. AGENT: ECS access; K8S_CCE: CCE access |
access_config_detail |
Yes |
AccessConfigDeatilCreate object |
Access configuration details. |
log_info |
Yes |
Log information |
|
host_group_info |
No |
Host group information |
|
access_config_tag |
No |
Array of accessConfigTag objects |
Tag information. A tag key must be unique. Up to 20 tags are supported. |
binary_collect |
No |
Boolean |
Binary collection. |
log_split |
No |
Boolean |
Log splitting. |
cluster_id |
No |
String |
Cluster ID |
incremental_collect |
No |
Boolean |
Whether to perform incremental collection. true indicates incremental collection and false indicates full collection. |
encoding_format |
No |
String |
Encoding format. The value can be UTF-8 (default) or GDB. |
processor_type |
No |
String |
IC structuring parsing type. The value can be SINGLE_LINE (single-line full-text), MULTI_LINE (multi-line full-text), REGEX (single-line regular expression), MULTI_REGEX (multi-line regular expression), SPLIT (delimiter), JSON (JSON parsing), NGINX (Nginx parsing), and COMPOSE (combined parsing). |
demo_log |
No |
String |
Example log. |
demo_fields |
No |
Array of DemoFieldAccess objects |
Example log parsing field. |
processors |
No |
Array of Processor objects |
IC structuring parser. |
application_id |
No |
String |
ServiceStage application ID. |
environment_id |
No |
String |
ServiceStage environment ID. |
component_id |
No |
Array of strings |
ServiceStage component ID. |
access_config_type_source |
No |
String |
Self-built software source of log ingestion. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
paths |
No |
Array of strings |
Collection paths.
|
black_paths |
No |
Array of strings |
Collection path blacklist.
|
format |
Yes |
AccessConfigFormatCreate object |
Log format. Set it to either single or multi. |
windows_log_info |
No |
Windows event logs. |
|
stdout |
No |
Boolean |
Standard output switch. This parameter is used only when logs are collected from CCE. |
stderr |
No |
Boolean |
Standard error switch. This parameter is used only when logs are collected from CCE. |
pathType |
No |
String |
Log collection from CCE. This parameter is used only when logs are collected from CCE. |
namespaceRegex |
No |
String |
Regular expression matching of Kubernetes namespaces. This parameter is used only when logs are collected from CCE. |
podNameRegex |
No |
String |
Regular expression matching of Kubernetes pods. This parameter is used only when logs are collected from CCE. |
containerNameRegex |
No |
String |
Regular expression matching of Kubernetes container names. This parameter is used only when logs are collected from CCE. |
includeLabels |
No |
Map<String,String> |
Container label trustlist. A maximum of 30 container labels can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeLabels |
No |
Map<String,String> |
Container label blocklist. A maximum of 30 container labels can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
includeEnvs |
No |
Map<String,String> |
Environment variable trustlist. A maximum of 30 environment variable whitelists can be created. Key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeEnvs |
No |
Map<String,String> |
Environment variable blocklist. A maximum of 30 environment variables can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logLabels |
No |
Map<String,String> |
Container label log tag. A maximum of 30 tags can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logEnvs |
No |
Map<String,String> |
Environment variable log tag. A maximum of 30 tags can be created. The key name must be unique. This parameter is used only when logs are collected from CCE. |
includeK8sLabels |
No |
Map<String,String> |
Kubernetes label trustlist. A maximum of 30 whitelists can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeK8sLabels |
No |
Map<String,String> |
Kubernetes label blocklist. A maximum of 30 blocklists can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logK8s |
No |
Map<String,String> |
Kubernetes label log tag. A maximum of 30 tags can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
repeat_collect |
No |
Boolean |
Forcible repeated collection. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
single |
No |
Single-line logs. |
|
multi |
No |
Multi-line logs. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
mode |
No |
String |
Single-line logs. system indicates the system time, whereas wildcard indicates the time wildcard. |
value |
No |
String |
Log time.If mode is system, the value is the current timestamp.If mode is wildcard, the value is a time wildcard, which is used by ICAgent to look for the log printing time as the beginning of a log event. If the time format in a log event is 2019-01-01 23:59:59, the time wildcard is YYYY-MM-DD hh:mm:ss. If the time format in a log event is 19-1-1 23:59:59, the time wildcard is YY-M-D hh:mm:ss. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
mode |
No |
String |
Single-line logs. time indicates a time wildcard is used to detect log boundaries, whereas regular indicates that a regular expression is used. |
value |
No |
String |
Log time.If mode is regular, the value is a regular expression.If mode is time, the value is a time wildcard, which is used by ICAgent to look for the log printing time as the beginning of a log event. If the time format in a log event is 2019-01-01 23:59:59, the time wildcard is YYYY-MM-DD hh:mm:ss. If the time format in a log event is 19-1-1 23:59:59, the time wildcard is YY-M-D hh:mm:ss. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
categorys |
Yes |
Array of strings |
The type of Windows event logs to be collected. Application: application system; System: system; Security: security; Setup: startup |
time_offset |
Yes |
AccessConfigTimeOffset object |
Time offset. |
event_level |
Yes |
Array of strings |
Event level. information, warning, error, critical, verbose. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
offset |
Yes |
Long |
Time offset. When unit is day, the value ranges from 1 to 7. When unit is hour, the value ranges from 1 to 168. When unit is sec, the value ranges from 1 to 604800. |
unit |
Yes |
String |
Unit of the time offset. day, hour, sec. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
log_group_id |
Yes |
String |
Log group ID. |
log_stream_id |
Yes |
String |
Log stream ID. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
host_group_id_list |
Yes |
Array of strings |
List of host group IDs. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
No |
String |
Tag key. |
value |
No |
String |
Tag value. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
field_name |
No |
String |
Field name, which must be the same as that in keys. |
field_value |
No |
String |
Field value. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
type |
No |
String |
Parser type. The value can be processor_regex (regular expression), processor_split_string (delimiter), processor_json (JSON parser), processor_gotime (custom time type), processor_filter_regex (log filtering), processor_drop (type of a deleted field), and processor_rename (type of a deleted field). |
detail |
No |
Detail object |
Parser configuration. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
source_key |
No |
String |
Custom time key field name. |
regex |
No |
String |
Regular expression for parsing. This field is required for a single-line completely regular expression or a multi-line completely regular expression. |
keys |
No |
Array of strings |
Field name list, which is consistent with the field_name field. |
multi_line_regex |
No |
String |
First line regular expression. |
keep_source |
No |
Boolean |
Whether to upload raw logs. |
keep_source_if_parse_error |
No |
Boolean |
Whether to upload logs that fail to be parsed. |
split_sep |
No |
String |
Delimiter. The maximum length of a custom delimiter is 10 characters, and the maximum length of a custom string is 30 characters. |
split_type |
No |
String |
Delimiter type. The value can be char (custom character), special_char (invisible character), or string (custom string). |
fields |
No |
Map<String,String> |
List of added fields, in [/topic/body/section/table/tgroup/tbody/row/entry/p/br {""}) (br] format. |
drop_keys |
No |
Array of strings |
List of deleted fields. |
source_keys |
No |
Array of strings |
List of source field names for renaming fields. |
dest_keys |
No |
Array of strings |
List of field names that are renamed and replaced. |
expand_depth |
No |
Integer |
JSON parsing depth. The value ranges from 1 (default) to 4. |
expand_connector |
No |
String |
JSON parsing field name connector. |
source_format |
No |
String |
Custom time format. |
source_value |
No |
String |
Custom time field value. |
set_time |
No |
Boolean |
Whether to enable the custom time function. |
include |
No |
Map<String,String> |
A key of a log filtering whitelist rule can contain up to 256 characters, and a value can contain up to 128 characters. A key must be unique. |
exclude |
No |
Map<String,String> |
A key of a log filtering whitelist rule can contain up to 256 characters, and a value can contain up to 128 characters. A key must be unique. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
access_config_id |
String |
Ingestion configuration ID. |
access_config_name |
String |
Ingestion configuration name. |
access_config_type |
String |
Ingestion configuration type. The value AGENT indicates host log ingestion. |
create_time |
Long |
Creation time. |
access_config_detail |
AccessConfigDeatilCreate object |
Ingestion configuration details. |
log_info |
AccessConfigQueryLogInfo object |
Log details. |
host_group_info |
AccessConfigHostGroupIdList object |
Host group ID list. |
access_config_tag |
Array of accessConfigTag objects |
Tag information. A tag key must be unique. Up to 20 tags are supported. |
log_split |
Boolean |
Log splitting. |
binary_collect |
Boolean |
Binary collection. |
cluster_id |
String |
CCE cluster ID |
encoding_format |
String |
Encoding format. The default format is UTF-8. |
incremental_collect |
Boolean |
Collection policy. The value can be incremental or full. |
processor_type |
String |
IC structuring parsing type. |
demo_log |
String |
Example log. |
demo_fields |
Array of DemoFieldAccess objects |
Example log parsing field. |
processors |
Array of Processor objects |
IC structuring parser. |
application_id |
String |
ServiceStage application ID. |
environment_id |
String |
ServiceStage environment ID. |
component_id |
Array of strings |
ServiceStage component ID. |
Parameter |
Type |
Description |
---|---|---|
paths |
Array of strings |
Collection paths.
|
black_paths |
Array of strings |
Collection path blacklist.
|
format |
AccessConfigFormatCreate object |
Log format. Set it to either single or multi. |
windows_log_info |
Windows event logs. |
|
stdout |
Boolean |
Standard output switch. This parameter is used only when logs are collected from CCE. |
stderr |
Boolean |
Standard error switch. This parameter is used only when logs are collected from CCE. |
pathType |
String |
Log collection from CCE. This parameter is used only when logs are collected from CCE. |
namespaceRegex |
String |
Regular expression matching of Kubernetes namespaces. This parameter is used only when logs are collected from CCE. |
podNameRegex |
String |
Regular expression matching of Kubernetes pods. This parameter is used only when logs are collected from CCE. |
containerNameRegex |
String |
Regular expression matching of Kubernetes container names. This parameter is used only when logs are collected from CCE. |
includeLabels |
Map<String,String> |
Container label trustlist. A maximum of 30 container labels can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeLabels |
Map<String,String> |
Container label blocklist. A maximum of 30 container labels can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
includeEnvs |
Map<String,String> |
Environment variable trustlist. A maximum of 30 environment variable whitelists can be created. Key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeEnvs |
Map<String,String> |
Environment variable blocklist. A maximum of 30 environment variables can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logLabels |
Map<String,String> |
Container label log tag. A maximum of 30 tags can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logEnvs |
Map<String,String> |
Environment variable log tag. A maximum of 30 tags can be created. The key name must be unique. This parameter is used only when logs are collected from CCE. |
includeK8sLabels |
Map<String,String> |
Kubernetes label trustlist. A maximum of 30 whitelists can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
excludeK8sLabels |
Map<String,String> |
Kubernetes label blocklist. A maximum of 30 blocklists can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
logK8s |
Map<String,String> |
Kubernetes label log tag. A maximum of 30 tags can be created. The key names must be unique. This parameter is used only when logs are collected from CCE. |
repeat_collect |
Boolean |
Forcible repeated collection. |
Parameter |
Type |
Description |
---|---|---|
single |
Single-line logs. |
|
multi |
Multi-line logs. |
Parameter |
Type |
Description |
---|---|---|
mode |
String |
Single-line logs. system indicates the system time, whereas wildcard indicates the time wildcard. |
value |
String |
Log time.If mode is system, the value is the current timestamp.If mode is wildcard, the value is a time wildcard, which is used by ICAgent to look for the log printing time as the beginning of a log event. If the time format in a log event is 2019-01-01 23:59:59, the time wildcard is YYYY-MM-DD hh:mm:ss. If the time format in a log event is 19-1-1 23:59:59, the time wildcard is YY-M-D hh:mm:ss. |
Parameter |
Type |
Description |
---|---|---|
mode |
String |
Single-line logs. time indicates a time wildcard is used to detect log boundaries, whereas regular indicates that a regular expression is used. |
value |
String |
Log time.If mode is regular, the value is a regular expression.If mode is time, the value is a time wildcard, which is used by ICAgent to look for the log printing time as the beginning of a log event. If the time format in a log event is 2019-01-01 23:59:59, the time wildcard is YYYY-MM-DD hh:mm:ss. If the time format in a log event is 19-1-1 23:59:59, the time wildcard is YY-M-D hh:mm:ss. |
Parameter |
Type |
Description |
---|---|---|
categorys |
Array of strings |
The type of Windows event logs to be collected. Application: application system; System: system; Security: security; Setup: startup |
time_offset |
AccessConfigTimeOffset object |
Time offset. |
event_level |
Array of strings |
Event level. information, warning, error, critical, verbose. |
Parameter |
Type |
Description |
---|---|---|
offset |
Long |
Time offset. When unit is day, the value ranges from 1 to 7. When unit is hour, the value ranges from 1 to 168. When unit is sec, the value ranges from 1 to 604800. |
unit |
String |
Unit of the time offset. day, hour, sec. |
Parameter |
Type |
Description |
---|---|---|
log_group_id |
String |
Log group ID. |
log_stream_id |
String |
Log stream ID. |
log_group_name |
String |
Log group name. |
log_stream_name |
String |
Log stream name. |
Parameter |
Type |
Description |
---|---|---|
host_group_id_list |
Array of strings |
List of host group IDs. |
Parameter |
Type |
Description |
---|---|---|
field_name |
String |
Field name, which must be the same as that in keys. |
field_value |
String |
Field value. |
Parameter |
Type |
Description |
---|---|---|
type |
String |
Parser type. The value can be processor_regex (regular expression), processor_split_string (delimiter), processor_json (JSON parser), processor_gotime (custom time type), processor_filter_regex (log filtering), processor_drop (type of a deleted field), and processor_rename (type of a deleted field). |
detail |
Detail object |
Parser configuration. |
Parameter |
Type |
Description |
---|---|---|
source_key |
String |
Custom time key field name. |
regex |
String |
Regular expression for parsing. This field is required for a single-line completely regular expression or a multi-line completely regular expression. |
keys |
Array of strings |
Field name list, which is consistent with the field_name field. |
multi_line_regex |
String |
First line regular expression. |
keep_source |
Boolean |
Whether to upload raw logs. |
keep_source_if_parse_error |
Boolean |
Whether to upload logs that fail to be parsed. |
split_sep |
String |
Delimiter. The maximum length of a custom delimiter is 10 characters, and the maximum length of a custom string is 30 characters. |
split_type |
String |
Delimiter type. The value can be char (custom character), special_char (invisible character), or string (custom string). |
fields |
Map<String,String> |
List of added fields, in [/topic/body/section/table/tgroup/tbody/row/entry/p/br {""}) (br] format. |
drop_keys |
Array of strings |
List of deleted fields. |
source_keys |
Array of strings |
List of source field names for renaming fields. |
dest_keys |
Array of strings |
List of field names that are renamed and replaced. |
expand_depth |
Integer |
JSON parsing depth. The value ranges from 1 (default) to 4. |
expand_connector |
String |
JSON parsing field name connector. |
source_format |
String |
Custom time format. |
source_value |
String |
Custom time field value. |
set_time |
Boolean |
Whether to enable the custom time function. |
include |
Map<String,String> |
A key of a log filtering whitelist rule can contain up to 256 characters, and a value can contain up to 128 characters. A key must be unique. |
exclude |
Map<String,String> |
A key of a log filtering whitelist rule can contain up to 256 characters, and a value can contain up to 128 characters. A key must be unique. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code |
error_msg |
String |
Error description |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code |
error_msg |
String |
Error description |
Example Requests
-
Creating a log ingestion configuration (for CCE)
POST https://{endpoint}/v3/{project_id}/lts/access-config { "access_config_name" : "myapinew322", "access_config_type" : "K8S_CCE", "access_config_detail" : { "pathType" : "CONTAINER_STDOUT", "stdout" : "true", "stderr" : "false", "format" : { "single" : { "mode" : "system", "value" : "1678969382000" } }, "namespaceRegex" : "default", "podNameRegex" : "abc", "containerNameRegex" : "my", "includeLabels" : { "a" : "1" }, "excludeLabels" : { "b" : "2" }, "logLabels" : { "c" : "3" }, "includeK8sLabels" : { "d" : "4" }, "excludeK8sLabels" : { "e" : "5" }, "logK8s" : { "f" : "6" }, "includeEnvs" : { "g" : "7" }, "excludeEnvs" : { "h" : "8" }, "logEnvs" : { "i" : "9" } }, "log_info" : { "log_group_id" : "9575cb24-290c-478e-a5db-88d6d1dc513b", "log_stream_id" : "3581bee9-8698-476e-a0ba-b0f310ed99cf" }, "host_group_info" : { "host_group_id_list" : [ "12b0bbd1-4eda-456b-a641-647aa66bdeab" ] }, "access_config_tag" : [ { "key" : "my01", "value" : "001" }, { "key" : "my02", "value" : "002" } ], "binary_collect" : "false", "log_split" : "false" }
-
Creating a log ingestion configuration (for ECS)
POST https://{endpoint}/v3/{project_id}/lts/access-config { "access_config_name" : "Tesxxx", "access_config_type" : "AGENT", "access_config_detail" : { "paths" : [ "/test/xxx", "/texxx" ], "black_paths" : [ "/testxxx", "/tesxxx" ], "format" : { "multi" : { "mode" : "time", "value" : "YYYY-MM-DD hh:mm:ss" } }, "windows_log_info" : { "categorys" : [ "System", "Security", "Setup" ], "event_level" : [ "warning", "error", "critical", "verbose" ], "time_offset" : { "offset" : 111, "unit" : "hour" } } }, "log_info" : { "log_group_id" : "b179326d-c3be-4217-a3d9-xxxx", "log_stream_id" : "020a6fa0-4740-4888-af06-98xxxxxx" }, "host_group_info" : { "host_group_id_list" : [ "4ee44d4f-a72b-40cf-a3c7-1xxxxx" ] }, "access_config_tag" : [ { "key" : "xxx", "value" : "xxx" }, { "key" : "xxx1", "value" : "xxx1" } ] }
Example Responses
Status code: 200
The ingestion configuration is created.
{ "access_config_detail" : { "containerNameRegex" : "container-1", "format" : { "single" : { "mode" : "system", "value" : "1678969382000" } }, "namespaceRegex" : "default", "pathType" : "container_stdout", "paths" : [ ], "podNameRegex" : "mystdout-6d7458d77c-rhjcc", "stderr" : true, "stdout" : true }, "access_config_id" : "03b16999-95cf-453b-9668-7aa1fafa564e", "access_config_name" : "myapinew32Y", "access_config_tag" : [ { "key" : "my01", "value" : "001" }, { "key" : "my02", "value" : "002" } ], "access_config_type" : "K8S_CCE", "binary_collect" : true, "create_time" : 1685626665176, "log_info" : { "log_group_id" : "9575cb24-290c-478e-a5db-88d6d1dc513b", "log_group_name" : "my-group", "log_stream_id" : "eea03c27-e041-4bec-bd03-6afa10a6561a", "log_stream_name" : "lts-topic-cceapi" }, "log_split" : true }
Status code: 400
Invalid request. Modify the request based on the description in error_msg before a retry.
{ "error_code" : "LTS.1807", "error_msg" : "Invalid access config name" }
Status code: 500
The server has received the request but encountered an internal error.
{ "error_code" : "LTS.0010", "error_msg" : "The system encountered an internal error" }
SDK Sample Code
The SDK sample code is as follows.
-
Creating a log ingestion configuration (for CCE)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
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.lts.v2.region.LtsRegion; import com.huaweicloud.sdk.lts.v2.*; import com.huaweicloud.sdk.lts.v2.model.*; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; public class CreateAccessConfigSolution { 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); LtsClient client = LtsClient.newBuilder() .withCredential(auth) .withRegion(LtsRegion.valueOf("<YOUR REGION>")) .build(); CreateAccessConfigRequest request = new CreateAccessConfigRequest(); CreateAccessConfigRequestBody body = new CreateAccessConfigRequestBody(); List<AccessConfigTag> listbodyAccessConfigTag = new ArrayList<>(); listbodyAccessConfigTag.add( new AccessConfigTag() .withKey("my01") .withValue("001") ); listbodyAccessConfigTag.add( new AccessConfigTag() .withKey("my02") .withValue("002") ); List<String> listHostGroupInfoHostGroupIdList = new ArrayList<>(); listHostGroupInfoHostGroupIdList.add("12b0bbd1-4eda-456b-a641-647aa66bdeab"); AccessConfigHostGroupIdListCreate hostGroupInfobody = new AccessConfigHostGroupIdListCreate(); hostGroupInfobody.withHostGroupIdList(listHostGroupInfoHostGroupIdList); AccessConfigBaseLogInfoCreate logInfobody = new AccessConfigBaseLogInfoCreate(); logInfobody.withLogGroupId("9575cb24-290c-478e-a5db-88d6d1dc513b") .withLogStreamId("3581bee9-8698-476e-a0ba-b0f310ed99cf"); Map<String, String> listAccessConfigDetailLogK8s = new HashMap<>(); listAccessConfigDetailLogK8s.put("f", "6"); Map<String, String> listAccessConfigDetailExcludeK8sLabels = new HashMap<>(); listAccessConfigDetailExcludeK8sLabels.put("e", "5"); Map<String, String> listAccessConfigDetailIncludeK8sLabels = new HashMap<>(); listAccessConfigDetailIncludeK8sLabels.put("d", "4"); Map<String, String> listAccessConfigDetailLogEnvs = new HashMap<>(); listAccessConfigDetailLogEnvs.put("i", "9"); Map<String, String> listAccessConfigDetailLogLabels = new HashMap<>(); listAccessConfigDetailLogLabels.put("c", "3"); Map<String, String> listAccessConfigDetailExcludeEnvs = new HashMap<>(); listAccessConfigDetailExcludeEnvs.put("h", "8"); Map<String, String> listAccessConfigDetailIncludeEnvs = new HashMap<>(); listAccessConfigDetailIncludeEnvs.put("g", "7"); Map<String, String> listAccessConfigDetailExcludeLabels = new HashMap<>(); listAccessConfigDetailExcludeLabels.put("b", "2"); Map<String, String> listAccessConfigDetailIncludeLabels = new HashMap<>(); listAccessConfigDetailIncludeLabels.put("a", "1"); AccessConfigFormatSingleCreate singleFormat = new AccessConfigFormatSingleCreate(); singleFormat.withMode(AccessConfigFormatSingleCreate.ModeEnum.fromValue("system")) .withValue("1678969382000"); AccessConfigFormatCreate formatAccessConfigDetail = new AccessConfigFormatCreate(); formatAccessConfigDetail.withSingle(singleFormat); AccessConfigDeatilCreate accessConfigDetailbody = new AccessConfigDeatilCreate(); accessConfigDetailbody.withFormat(formatAccessConfigDetail) .withStdout(true) .withStderr(false) .withPathType(AccessConfigDeatilCreate.PathTypeEnum.fromValue("CONTAINER_STDOUT")) .withNamespaceRegex("default") .withPodNameRegex("abc") .withContainerNameRegex("my") .withIncludeLabels(listAccessConfigDetailIncludeLabels) .withExcludeLabels(listAccessConfigDetailExcludeLabels) .withIncludeEnvs(listAccessConfigDetailIncludeEnvs) .withExcludeEnvs(listAccessConfigDetailExcludeEnvs) .withLogLabels(listAccessConfigDetailLogLabels) .withLogEnvs(listAccessConfigDetailLogEnvs) .withIncludeK8sLabels(listAccessConfigDetailIncludeK8sLabels) .withExcludeK8sLabels(listAccessConfigDetailExcludeK8sLabels) .withLogK8s(listAccessConfigDetailLogK8s); body.withLogSplit(false); body.withBinaryCollect(false); body.withAccessConfigTag(listbodyAccessConfigTag); body.withHostGroupInfo(hostGroupInfobody); body.withLogInfo(logInfobody); body.withAccessConfigDetail(accessConfigDetailbody); body.withAccessConfigType(CreateAccessConfigRequestBody.AccessConfigTypeEnum.fromValue("K8S_CCE")); body.withAccessConfigName("myapinew322"); request.withBody(body); try { CreateAccessConfigResponse response = client.createAccessConfig(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()); } } }
-
Creating a log ingestion configuration (for ECS)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
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.lts.v2.region.LtsRegion; import com.huaweicloud.sdk.lts.v2.*; import com.huaweicloud.sdk.lts.v2.model.*; import java.util.List; import java.util.ArrayList; public class CreateAccessConfigSolution { 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); LtsClient client = LtsClient.newBuilder() .withCredential(auth) .withRegion(LtsRegion.valueOf("<YOUR REGION>")) .build(); CreateAccessConfigRequest request = new CreateAccessConfigRequest(); CreateAccessConfigRequestBody body = new CreateAccessConfigRequestBody(); List<AccessConfigTag> listbodyAccessConfigTag = new ArrayList<>(); listbodyAccessConfigTag.add( new AccessConfigTag() .withKey("xxx") .withValue("xxx") ); listbodyAccessConfigTag.add( new AccessConfigTag() .withKey("xxx1") .withValue("xxx1") ); List<String> listHostGroupInfoHostGroupIdList = new ArrayList<>(); listHostGroupInfoHostGroupIdList.add("4ee44d4f-a72b-40cf-a3c7-1xxxxx"); AccessConfigHostGroupIdListCreate hostGroupInfobody = new AccessConfigHostGroupIdListCreate(); hostGroupInfobody.withHostGroupIdList(listHostGroupInfoHostGroupIdList); AccessConfigBaseLogInfoCreate logInfobody = new AccessConfigBaseLogInfoCreate(); logInfobody.withLogGroupId("b179326d-c3be-4217-a3d9-xxxx") .withLogStreamId("020a6fa0-4740-4888-af06-98xxxxxx"); List<AccessConfigWindowsLogInfoCreate.EventLevelEnum> listWindowsLogInfoEventLevel = new ArrayList<>(); listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("warning")); listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("error")); listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("critical")); listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("verbose")); AccessConfigTimeOffset timeOffsetWindowsLogInfo = new AccessConfigTimeOffset(); timeOffsetWindowsLogInfo.withOffset(111L) .withUnit(AccessConfigTimeOffset.UnitEnum.fromValue("hour")); List<AccessConfigWindowsLogInfoCreate.CategorysEnum> listWindowsLogInfoCategorys = new ArrayList<>(); listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("System")); listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("Security")); listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("Setup")); AccessConfigWindowsLogInfoCreate windowsLogInfoAccessConfigDetail = new AccessConfigWindowsLogInfoCreate(); windowsLogInfoAccessConfigDetail.withCategorys(listWindowsLogInfoCategorys) .withTimeOffset(timeOffsetWindowsLogInfo) .withEventLevel(listWindowsLogInfoEventLevel); AccessConfigFormatMutilCreate multiFormat = new AccessConfigFormatMutilCreate(); multiFormat.withMode(AccessConfigFormatMutilCreate.ModeEnum.fromValue("time")) .withValue("YYYY-MM-DD hh:mm:ss"); AccessConfigFormatCreate formatAccessConfigDetail = new AccessConfigFormatCreate(); formatAccessConfigDetail.withMulti(multiFormat); List<String> listAccessConfigDetailBlackPaths = new ArrayList<>(); listAccessConfigDetailBlackPaths.add("/testxxx"); listAccessConfigDetailBlackPaths.add("/tesxxx"); List<String> listAccessConfigDetailPaths = new ArrayList<>(); listAccessConfigDetailPaths.add("/test/xxx"); listAccessConfigDetailPaths.add("/texxx"); AccessConfigDeatilCreate accessConfigDetailbody = new AccessConfigDeatilCreate(); accessConfigDetailbody.withPaths(listAccessConfigDetailPaths) .withBlackPaths(listAccessConfigDetailBlackPaths) .withFormat(formatAccessConfigDetail) .withWindowsLogInfo(windowsLogInfoAccessConfigDetail); body.withAccessConfigTag(listbodyAccessConfigTag); body.withHostGroupInfo(hostGroupInfobody); body.withLogInfo(logInfobody); body.withAccessConfigDetail(accessConfigDetailbody); body.withAccessConfigType(CreateAccessConfigRequestBody.AccessConfigTypeEnum.fromValue("AGENT")); body.withAccessConfigName("Tesxxx"); request.withBody(body); try { CreateAccessConfigResponse response = client.createAccessConfig(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()); } } }
-
Creating a log ingestion configuration (for CCE)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdklts.v2.region.lts_region import LtsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdklts.v2 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 = LtsClient.new_builder() \ .with_credentials(credentials) \ .with_region(LtsRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateAccessConfigRequest() listAccessConfigTagbody = [ AccessConfigTag( key="my01", value="001" ), AccessConfigTag( key="my02", value="002" ) ] listHostGroupIdListHostGroupInfo = [ "12b0bbd1-4eda-456b-a641-647aa66bdeab" ] hostGroupInfobody = AccessConfigHostGroupIdListCreate( host_group_id_list=listHostGroupIdListHostGroupInfo ) logInfobody = AccessConfigBaseLogInfoCreate( log_group_id="9575cb24-290c-478e-a5db-88d6d1dc513b", log_stream_id="3581bee9-8698-476e-a0ba-b0f310ed99cf" ) listLogK8sAccessConfigDetail = { "f": "6" } listExcludeK8sLabelsAccessConfigDetail = { "e": "5" } listIncludeK8sLabelsAccessConfigDetail = { "d": "4" } listLogEnvsAccessConfigDetail = { "i": "9" } listLogLabelsAccessConfigDetail = { "c": "3" } listExcludeEnvsAccessConfigDetail = { "h": "8" } listIncludeEnvsAccessConfigDetail = { "g": "7" } listExcludeLabelsAccessConfigDetail = { "b": "2" } listIncludeLabelsAccessConfigDetail = { "a": "1" } singleFormat = AccessConfigFormatSingleCreate( mode="system", value="1678969382000" ) formatAccessConfigDetail = AccessConfigFormatCreate( single=singleFormat ) accessConfigDetailbody = AccessConfigDeatilCreate( format=formatAccessConfigDetail, stdout=True, stderr=False, path_type="CONTAINER_STDOUT", namespace_regex="default", pod_name_regex="abc", container_name_regex="my", include_labels=listIncludeLabelsAccessConfigDetail, exclude_labels=listExcludeLabelsAccessConfigDetail, include_envs=listIncludeEnvsAccessConfigDetail, exclude_envs=listExcludeEnvsAccessConfigDetail, log_labels=listLogLabelsAccessConfigDetail, log_envs=listLogEnvsAccessConfigDetail, include_k8s_labels=listIncludeK8sLabelsAccessConfigDetail, exclude_k8s_labels=listExcludeK8sLabelsAccessConfigDetail, log_k8s=listLogK8sAccessConfigDetail ) request.body = CreateAccessConfigRequestBody( log_split=False, binary_collect=False, access_config_tag=listAccessConfigTagbody, host_group_info=hostGroupInfobody, log_info=logInfobody, access_config_detail=accessConfigDetailbody, access_config_type="K8S_CCE", access_config_name="myapinew322" ) response = client.create_access_config(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
Creating a log ingestion configuration (for ECS)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdklts.v2.region.lts_region import LtsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdklts.v2 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 = LtsClient.new_builder() \ .with_credentials(credentials) \ .with_region(LtsRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateAccessConfigRequest() listAccessConfigTagbody = [ AccessConfigTag( key="xxx", value="xxx" ), AccessConfigTag( key="xxx1", value="xxx1" ) ] listHostGroupIdListHostGroupInfo = [ "4ee44d4f-a72b-40cf-a3c7-1xxxxx" ] hostGroupInfobody = AccessConfigHostGroupIdListCreate( host_group_id_list=listHostGroupIdListHostGroupInfo ) logInfobody = AccessConfigBaseLogInfoCreate( log_group_id="b179326d-c3be-4217-a3d9-xxxx", log_stream_id="020a6fa0-4740-4888-af06-98xxxxxx" ) listEventLevelWindowsLogInfo = [ "warning", "error", "critical", "verbose" ] timeOffsetWindowsLogInfo = AccessConfigTimeOffset( offset=111, unit="hour" ) listCategorysWindowsLogInfo = [ "System", "Security", "Setup" ] windowsLogInfoAccessConfigDetail = AccessConfigWindowsLogInfoCreate( categorys=listCategorysWindowsLogInfo, time_offset=timeOffsetWindowsLogInfo, event_level=listEventLevelWindowsLogInfo ) multiFormat = AccessConfigFormatMutilCreate( mode="time", value="YYYY-MM-DD hh:mm:ss" ) formatAccessConfigDetail = AccessConfigFormatCreate( multi=multiFormat ) listBlackPathsAccessConfigDetail = [ "/testxxx", "/tesxxx" ] listPathsAccessConfigDetail = [ "/test/xxx", "/texxx" ] accessConfigDetailbody = AccessConfigDeatilCreate( paths=listPathsAccessConfigDetail, black_paths=listBlackPathsAccessConfigDetail, format=formatAccessConfigDetail, windows_log_info=windowsLogInfoAccessConfigDetail ) request.body = CreateAccessConfigRequestBody( access_config_tag=listAccessConfigTagbody, host_group_info=hostGroupInfobody, log_info=logInfobody, access_config_detail=accessConfigDetailbody, access_config_type="AGENT", access_config_name="Tesxxx" ) response = client.create_access_config(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
Creating a log ingestion configuration (for CCE)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/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 := lts.NewLtsClient( lts.LtsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateAccessConfigRequest{} keyAccessConfigTag:= "my01" valueAccessConfigTag:= "001" keyAccessConfigTag1:= "my02" valueAccessConfigTag1:= "002" var listAccessConfigTagbody = []model.AccessConfigTag{ { Key: &keyAccessConfigTag, Value: &valueAccessConfigTag, }, { Key: &keyAccessConfigTag1, Value: &valueAccessConfigTag1, }, } var listHostGroupIdListHostGroupInfo = []string{ "12b0bbd1-4eda-456b-a641-647aa66bdeab", } hostGroupInfobody := &model.AccessConfigHostGroupIdListCreate{ HostGroupIdList: listHostGroupIdListHostGroupInfo, } logInfobody := &model.AccessConfigBaseLogInfoCreate{ LogGroupId: "9575cb24-290c-478e-a5db-88d6d1dc513b", LogStreamId: "3581bee9-8698-476e-a0ba-b0f310ed99cf", } var listLogK8sAccessConfigDetail = map[string]string{ "f": "6", } var listExcludeK8sLabelsAccessConfigDetail = map[string]string{ "e": "5", } var listIncludeK8sLabelsAccessConfigDetail = map[string]string{ "d": "4", } var listLogEnvsAccessConfigDetail = map[string]string{ "i": "9", } var listLogLabelsAccessConfigDetail = map[string]string{ "c": "3", } var listExcludeEnvsAccessConfigDetail = map[string]string{ "h": "8", } var listIncludeEnvsAccessConfigDetail = map[string]string{ "g": "7", } var listExcludeLabelsAccessConfigDetail = map[string]string{ "b": "2", } var listIncludeLabelsAccessConfigDetail = map[string]string{ "a": "1", } modeSingle:= model.GetAccessConfigFormatSingleCreateModeEnum().SYSTEM valueSingle:= "1678969382000" singleFormat := &model.AccessConfigFormatSingleCreate{ Mode: &modeSingle, Value: &valueSingle, } formatAccessConfigDetail := &model.AccessConfigFormatCreate{ Single: singleFormat, } stdoutAccessConfigDetail:= true stderrAccessConfigDetail:= false pathTypeAccessConfigDetail:= model.GetAccessConfigDeatilCreatePathTypeEnum().CONTAINER_STDOUT namespaceRegexAccessConfigDetail:= "default" podNameRegexAccessConfigDetail:= "abc" containerNameRegexAccessConfigDetail:= "my" accessConfigDetailbody := &model.AccessConfigDeatilCreate{ Format: formatAccessConfigDetail, Stdout: &stdoutAccessConfigDetail, Stderr: &stderrAccessConfigDetail, PathType: &pathTypeAccessConfigDetail, NamespaceRegex: &namespaceRegexAccessConfigDetail, PodNameRegex: &podNameRegexAccessConfigDetail, ContainerNameRegex: &containerNameRegexAccessConfigDetail, IncludeLabels: listIncludeLabelsAccessConfigDetail, ExcludeLabels: listExcludeLabelsAccessConfigDetail, IncludeEnvs: listIncludeEnvsAccessConfigDetail, ExcludeEnvs: listExcludeEnvsAccessConfigDetail, LogLabels: listLogLabelsAccessConfigDetail, LogEnvs: listLogEnvsAccessConfigDetail, IncludeK8sLabels: listIncludeK8sLabelsAccessConfigDetail, ExcludeK8sLabels: listExcludeK8sLabelsAccessConfigDetail, LogK8s: listLogK8sAccessConfigDetail, } logSplitCreateAccessConfigRequestBody:= false binaryCollectCreateAccessConfigRequestBody:= false request.Body = &model.CreateAccessConfigRequestBody{ LogSplit: &logSplitCreateAccessConfigRequestBody, BinaryCollect: &binaryCollectCreateAccessConfigRequestBody, AccessConfigTag: &listAccessConfigTagbody, HostGroupInfo: hostGroupInfobody, LogInfo: logInfobody, AccessConfigDetail: accessConfigDetailbody, AccessConfigType: model.GetCreateAccessConfigRequestBodyAccessConfigTypeEnum().K8_S_CCE, AccessConfigName: "myapinew322", } response, err := client.CreateAccessConfig(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
Creating a log ingestion configuration (for ECS)
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/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 := lts.NewLtsClient( lts.LtsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateAccessConfigRequest{} keyAccessConfigTag:= "xxx" valueAccessConfigTag:= "xxx" keyAccessConfigTag1:= "xxx1" valueAccessConfigTag1:= "xxx1" var listAccessConfigTagbody = []model.AccessConfigTag{ { Key: &keyAccessConfigTag, Value: &valueAccessConfigTag, }, { Key: &keyAccessConfigTag1, Value: &valueAccessConfigTag1, }, } var listHostGroupIdListHostGroupInfo = []string{ "4ee44d4f-a72b-40cf-a3c7-1xxxxx", } hostGroupInfobody := &model.AccessConfigHostGroupIdListCreate{ HostGroupIdList: listHostGroupIdListHostGroupInfo, } logInfobody := &model.AccessConfigBaseLogInfoCreate{ LogGroupId: "b179326d-c3be-4217-a3d9-xxxx", LogStreamId: "020a6fa0-4740-4888-af06-98xxxxxx", } var listEventLevelWindowsLogInfo = []model.AccessConfigWindowsLogInfoCreateEventLevel{ model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().WARNING, model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().ERROR, model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().CRITICAL, model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().VERBOSE, } timeOffsetWindowsLogInfo := &model.AccessConfigTimeOffset{ Offset: int64(111), Unit: model.GetAccessConfigTimeOffsetUnitEnum().HOUR, } var listCategorysWindowsLogInfo = []model.AccessConfigWindowsLogInfoCreateCategorys{ model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SYSTEM, model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SECURITY, model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SETUP, } windowsLogInfoAccessConfigDetail := &model.AccessConfigWindowsLogInfoCreate{ Categorys: listCategorysWindowsLogInfo, TimeOffset: timeOffsetWindowsLogInfo, EventLevel: listEventLevelWindowsLogInfo, } modeMulti:= model.GetAccessConfigFormatMutilCreateModeEnum().TIME valueMulti:= "YYYY-MM-DD hh:mm:ss" multiFormat := &model.AccessConfigFormatMutilCreate{ Mode: &modeMulti, Value: &valueMulti, } formatAccessConfigDetail := &model.AccessConfigFormatCreate{ Multi: multiFormat, } var listBlackPathsAccessConfigDetail = []string{ "/testxxx", "/tesxxx", } var listPathsAccessConfigDetail = []string{ "/test/xxx", "/texxx", } accessConfigDetailbody := &model.AccessConfigDeatilCreate{ Paths: &listPathsAccessConfigDetail, BlackPaths: &listBlackPathsAccessConfigDetail, Format: formatAccessConfigDetail, WindowsLogInfo: windowsLogInfoAccessConfigDetail, } request.Body = &model.CreateAccessConfigRequestBody{ AccessConfigTag: &listAccessConfigTagbody, HostGroupInfo: hostGroupInfobody, LogInfo: logInfobody, AccessConfigDetail: accessConfigDetailbody, AccessConfigType: model.GetCreateAccessConfigRequestBodyAccessConfigTypeEnum().AGENT, AccessConfigName: "Tesxxx", } response, err := client.CreateAccessConfig(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
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 |
The ingestion configuration is created. |
400 |
Invalid request. Modify the request based on the description in error_msg before a retry. |
500 |
The server has received the request but encountered an internal error. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot