El contenido no se encuentra disponible en el idioma seleccionado. Estamos trabajando continuamente para agregar más idiomas. Gracias por su apoyo.
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. Minimum: 32 Maximum: 32 |
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. Minimum: 1000 Maximum: 2000 |
Content-Type |
Yes |
String |
Set this parameter to application/json;charset=UTF-8. Minimum: 30 Maximum: 30 |
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}$. Minimum: 1 Maximum: 64 |
access_config_type |
Yes |
String |
Ingestion configuration type. AGENT: ECS access; K8S_CCE: CCE access Enumeration values:
|
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 GBK. |
processor_type |
No |
String |
ICAgent 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), or 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 |
Parameter description: Collection paths.
The container path and host path are mandatory for the CCE type and are not mandatory for the standard output. Value range: N/A. |
black_paths |
No |
Array of strings |
Parameter description: Collection path blacklist.
Value range: N/A. |
format |
Yes |
AccessConfigFormatCreate object |
Parameter description: Collection path blacklist.
Value range: N/A. |
windows_log_info |
No |
Parameter description: Windows event logs. Value range: N/A. |
|
stdout |
No |
Boolean |
Parameter description: Standard output switch. This parameter is used only for CCE log ingestion. Value range: N/A. |
stderr |
No |
Boolean |
Parameter description: Standard error switch. This parameter is used only for CCE log ingestion. Value range: N/A. |
pathType |
No |
String |
Parameter description: CCE log ingestion type. This parameter is used only for CCE log ingestion. Value range: N/A. |
namespaceRegex |
No |
String |
Parameter description: Regular expression matching of Kubernetes namespaces. This parameter is used only for CCE log ingestion. Value range: N/A. |
podNameRegex |
No |
String |
Parameter description: Regular expression matching of Kubernetes pods. This parameter is used only for CCE log ingestion. Value range: N/A. |
containerNameRegex |
No |
String |
Parameter description: Regular expression matching of Kubernetes container names. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeLabels |
No |
Map<String,String> |
Parameter description: Container label whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeLabels |
No |
Map<String,String> |
Parameter description: Container label blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeEnvs |
No |
Map<String,String> |
Parameter description: Environment variable whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeEnvs |
No |
Map<String,String> |
Parameter description: Environment variable blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logLabels |
No |
Map<String,String> |
Parameter description: Container label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logEnvs |
No |
Map<String,String> |
Parameter description: Environment variable label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeK8sLabels |
No |
Map<String,String> |
Parameter description: Kubernetes label whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeK8sLabels |
No |
Map<String,String> |
Parameter description: Kubernetes label blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logK8s |
No |
Map<String,String> |
Parameter description: Kubernetes label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
repeat_collect |
No |
Boolean |
Parameter description: Forcible repeated collection. Value range: N/A. |
system_fields |
No |
Array of strings |
Parameter description: System built-in fields. When configuring a log ingestion rule, you can specify system fields to include in the tag data of each log reported. The system fields for host log files are hostName, hostId, hostIP, pathFile, hostIPv6, category, collectTime, and __host_group__. The system fields for Kubernetes cluster container log files are hostName, hostId, hostIP, pathFile, hostIPv6, clusterId, podName, appName, containerName, nameSpace, category, collectTime, __host_group__, serviceID, podIp, clusterName, workloadType, and __image_name__. If this parameter is transferred during modification, the original configuration will be overwritten. When you configure metadata for the first time, this parameter is mandatory and the value is ["pathFile"]. In this case, pathFile is mandatory and other fields are optional. Value range: N/A. |
custom_key_value |
No |
Map<String,String> |
Parameter description: Custom key-value pairs. When configuring a log ingestion rule, you can configure up to 20 custom key-value pairs to include in the tag data of each log reported. A key can contain up to 128 characters, including letters, digits, hyphens (-), and underscores (_). A value can contain up to 1,024 characters. If this parameter is transferred during modification, the original configuration will be overwritten. Value range: N/A. |
includeLabelsLogical |
No |
String |
Parameter description: Logic for the container label whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the container label whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeLabelsLogical |
No |
String |
Parameter description: Logic for the container label blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the container label blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
includeK8sLabelsLogical |
No |
String |
Parameter description: Logic for the Kubernetes label whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the Kubernetes label whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeK8sLabelsLogical |
No |
String |
Parameter description: Logic for the Kubernetes label blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the Kubernetes label blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
includeEnvsLogical |
No |
String |
Parameter description: Logic for the environment variable whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the environment variable whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeEnvsLogical |
No |
String |
Parameter description: Logic for the environment variable blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the environment variable blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
single |
No |
Parameter description: Single-line format is set as the log ingestion format. Value range: N/A. |
|
multi |
No |
Parameter description: Multi-line format is set as the log ingestion format. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
mode |
No |
String |
Parameter description: Single-line logs. The value can be system (system time) or wildcard (time wildcard). Value range: N/A. |
value |
No |
String |
Parameter description: 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 to match the log printing time displayed at 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. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
mode |
No |
String |
Parameter description: Single-line logs. The value can be time (log time) or regular (regular expression). Value range: N/A. |
value |
No |
String |
Parameter description: 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 to match the log printing time displayed at 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. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
categorys |
Yes |
Array of strings |
Parameter description: Type of Windows event logs to be collected. The value can be Application (application system logs), System (system logs), Security (security logs), or Setup (startup logs). Value range: N/A. |
time_offset |
Yes |
AccessConfigTimeOffset object |
Parameter description: Time offset for log ingestion. Value range: N/A. |
event_level |
Yes |
Array of strings |
Parameter description: Event level. The value can be information, warning, error, critical, or verbose. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
offset |
Yes |
Long |
Parameter description: 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 604,800. Value range: N/A. |
unit |
Yes |
String |
Parameter description: Unit of the time offset. The value can be day, hour, or sec. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
log_group_id |
Yes |
String |
Log group ID. Minimum: 36 Maximum: 36 |
log_stream_id |
Yes |
String |
Log stream ID. Minimum: 36 Maximum: 36 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
host_group_id_list |
Yes |
Array of strings |
List of host group IDs. Minimum: 36 Maximum: 36 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
No |
String |
Parameter description: Tag key, which must be unique. Constraints: N/A. Value range: It can contain up to 128 characters, including only letters, digits, spaces, and special characters (_.:=+-@). Do not start or end with a space, nor start with sys. |
value |
No |
String |
Parameter description: Tag value. Value range: It can contain up to 255 characters, including only letters, digits, spaces, and special characters (_.:=+-@). |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
field_name |
No |
String |
Parameter description: Field name, which must be the same as that in keys. Value range: N/A. |
field_value |
No |
String |
Parameter description: Field value. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
type |
No |
String |
Parameter description: Parser type. processor_regex: regular expression processor_split_string: delimiter processor_json: JSON processor_gotime: custom time type processor_filter_regex: log filtering processor_drop: type of fields to be deleted processor_rename: type of fields to be modified Value range: N/A. |
detail |
No |
Detail object |
Parameter description: Parser configuration. Value range: N/A. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
source_key |
No |
String |
Parameter description: Custom time key field name. Value range: N/A. |
regex |
No |
String |
Parameter description: Regular expression for parsing. This field is required for a single-line completely regular expression or a multi-line completely regular expression. Value range: N/A. |
keys |
No |
Array of strings |
Parameter description: Field name list, which is consistent with the field_name field. Value range: N/A. |
multi_line_regex |
No |
String |
Parameter description: First line regular expression. Value range: N/A. |
keep_source |
No |
Boolean |
Parameter description: Whether to upload raw logs. Value range: N/A. |
keep_source_if_parse_error |
No |
Boolean |
Parameter description: Whether to upload logs that fail to be parsed. Value range: N/A. |
split_sep |
No |
String |
Parameter description: Delimiters. Value range: The maximum length of custom characters is 10 characters, and the maximum length of a custom string is 30 characters. |
split_type |
No |
String |
Parameter description: Delimiter type. The value can be char (custom characters), special_char (invisible characters), or string (custom string). Value range: N/A. |
fields |
No |
Map<String,String> |
Parameter description: List of added fields, in [/topic/body/section/table/tgroup/tbody/row/entry/p/br {""}) (br] format. Value range: N/A. |
drop_keys |
No |
Array of strings |
Parameter description: List of deleted fields. Value range: N/A. |
source_keys |
No |
Array of strings |
Parameter description: List of source field names for renaming fields. Value range: N/A. |
dest_keys |
No |
Array of strings |
Parameter description: List of field names that are renamed and replaced. Value range: N/A. |
expand_depth |
No |
Integer |
Parameter description: JSON parsing depth. The value ranges from 1 (default) to 4. Value range: N/A. |
expand_connector |
No |
String |
Parameter description: JSON parsing field name connector. Value range: N/A. |
source_format |
No |
String |
Parameter description: Custom time format. Value range: N/A. |
source_value |
No |
String |
Parameter description: Custom time field value. Value range: N/A. |
set_time |
No |
Boolean |
Parameter description: Whether to enable the custom time function. Value range: N/A. |
include |
No |
Map<String,String> |
Parameter description: 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. Value range: N/A. |
exclude |
No |
Map<String,String> |
Parameter description: 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. Value range: N/A. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
access_config_id |
String |
Parameter description: Ingestion configuration ID. Value range: N/A. |
access_config_name |
String |
Parameter description: Ingestion configuration name. Value range: N/A. |
access_config_type |
String |
Parameter description: Ingestion configuration type. The value can be AGENT (ECS log ingestion) or K8S_CCE (CCE log ingestion). Value range: N/A. |
create_time |
Long |
Parameter description: Creation time. Value range: N/A. |
access_config_detail |
AccessConfigDeatilCreate object |
Parameter description: Ingestion configuration details. Value range: N/A. |
log_info |
AccessConfigQueryLogInfo object |
Parameter description: Log details. Value range: N/A. |
host_group_info |
AccessConfigHostGroupIdList object |
Parameter description: Host group ID list. Value range: N/A. |
access_config_tag |
Array of accessConfigTag objects |
Parameter description: Tag information. A tag key must be unique. Up to 20 tags are allowed. Value range: N/A. |
log_split |
Boolean |
Parameter description: Log splitting. Value range: N/A. |
binary_collect |
Boolean |
Parameter description: Binary file collection. Value range: N/A. |
cluster_id |
String |
Parameter description: CCE cluster ID. Value range: N/A. |
encoding_format |
String |
Parameter description: Encoding format. The default format is UTF-8. Value range: N/A. |
incremental_collect |
Boolean |
Parameter description: Collection policy. The value can be incremental. Value range: N/A. |
processor_type |
String |
Parameter description: ICAgent structuring parsing type. Value range: N/A. |
demo_log |
String |
Parameter description: Sample log event. Value range: N/A. |
demo_fields |
Array of DemoFieldAccess objects |
Parameter description: Parsing fields of the sample log event. Value range: N/A. |
processors |
Array of Processor objects |
Parameter description: ICAgent structuring parser. Value range: N/A. |
application_id |
String |
Parameter description: ServiceStage application ID. Value range: N/A. |
environment_id |
String |
Parameter description: ServiceStage environment ID. Value range: N/A. |
component_id |
Array of strings |
Parameter description: ServiceStage component ID. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
paths |
Array of strings |
Parameter description: Collection paths.
The container path and host path are mandatory for the CCE type and are not mandatory for the standard output. Value range: N/A. |
black_paths |
Array of strings |
Parameter description: Collection path blacklist.
Value range: N/A. |
format |
AccessConfigFormatCreate object |
Parameter description: Collection path blacklist.
Value range: N/A. |
windows_log_info |
Parameter description: Windows event logs. Value range: N/A. |
|
stdout |
Boolean |
Parameter description: Standard output switch. This parameter is used only for CCE log ingestion. Value range: N/A. |
stderr |
Boolean |
Parameter description: Standard error switch. This parameter is used only for CCE log ingestion. Value range: N/A. |
pathType |
String |
Parameter description: CCE log ingestion type. This parameter is used only for CCE log ingestion. Value range: N/A. |
namespaceRegex |
String |
Parameter description: Regular expression matching of Kubernetes namespaces. This parameter is used only for CCE log ingestion. Value range: N/A. |
podNameRegex |
String |
Parameter description: Regular expression matching of Kubernetes pods. This parameter is used only for CCE log ingestion. Value range: N/A. |
containerNameRegex |
String |
Parameter description: Regular expression matching of Kubernetes container names. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeLabels |
Map<String,String> |
Parameter description: Container label whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeLabels |
Map<String,String> |
Parameter description: Container label blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeEnvs |
Map<String,String> |
Parameter description: Environment variable whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeEnvs |
Map<String,String> |
Parameter description: Environment variable blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logLabels |
Map<String,String> |
Parameter description: Container label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logEnvs |
Map<String,String> |
Parameter description: Environment variable label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
includeK8sLabels |
Map<String,String> |
Parameter description: Kubernetes label whitelist. You can create up to 30 whitelists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
excludeK8sLabels |
Map<String,String> |
Parameter description: Kubernetes label blacklist. You can create up to 30 blacklists. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
logK8s |
Map<String,String> |
Parameter description: Kubernetes label. You can create up to 30 labels. The key names must be unique. This parameter is used only for CCE log ingestion. Value range: N/A. |
repeat_collect |
Boolean |
Parameter description: Forcible repeated collection. Value range: N/A. |
system_fields |
Array of strings |
Parameter description: System built-in fields. When configuring a log ingestion rule, you can specify system fields to include in the tag data of each log reported. The system fields for host log files are hostName, hostId, hostIP, pathFile, hostIPv6, category, collectTime, and __host_group__. The system fields for Kubernetes cluster container log files are hostName, hostId, hostIP, pathFile, hostIPv6, clusterId, podName, appName, containerName, nameSpace, category, collectTime, __host_group__, serviceID, podIp, clusterName, workloadType, and __image_name__. If this parameter is transferred during modification, the original configuration will be overwritten. When you configure metadata for the first time, this parameter is mandatory and the value is ["pathFile"]. In this case, pathFile is mandatory and other fields are optional. Value range: N/A. |
custom_key_value |
Map<String,String> |
Parameter description: Custom key-value pairs. When configuring a log ingestion rule, you can configure up to 20 custom key-value pairs to include in the tag data of each log reported. A key can contain up to 128 characters, including letters, digits, hyphens (-), and underscores (_). A value can contain up to 1,024 characters. If this parameter is transferred during modification, the original configuration will be overwritten. Value range: N/A. |
includeLabelsLogical |
String |
Parameter description: Logic for the container label whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the container label whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeLabelsLogical |
String |
Parameter description: Logic for the container label blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the container label blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
includeK8sLabelsLogical |
String |
Parameter description: Logic for the Kubernetes label whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the Kubernetes label whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeK8sLabelsLogical |
String |
Parameter description: Logic for the Kubernetes label blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the Kubernetes label blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
includeEnvsLogical |
String |
Parameter description: Logic for the environment variable whitelist to take effect. The value can be AND or OR (default). When there are multiple conditions for the environment variable whitelist, AND indicates that the whitelist takes effect only when all the conditions are met, and OR indicates that the whitelist takes effect when one of the conditions is met. Value range: N/A. |
excludeEnvsLogical |
String |
Parameter description: Logic for the environment variable blacklist to take effect. The value can be AND or OR (default). When there are multiple conditions for the environment variable blacklist, AND indicates that the blacklist takes effect only when all the conditions are met, and OR indicates that the blacklist takes effect when one of the conditions is met. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
single |
Parameter description: Single-line format is set as the log ingestion format. Value range: N/A. |
|
multi |
Parameter description: Multi-line format is set as the log ingestion format. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
mode |
String |
Parameter description: Single-line logs. The value can be system (system time) or wildcard (time wildcard). Value range: N/A. |
value |
String |
Parameter description: 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 to match the log printing time displayed at 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. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
mode |
String |
Parameter description: Single-line logs. The value can be time (log time) or regular (regular expression). Value range: N/A. |
value |
String |
Parameter description: 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 to match the log printing time displayed at 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. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
categorys |
Array of strings |
Parameter description: Type of Windows event logs to be collected. The value can be Application (application system logs), System (system logs), Security (security logs), or Setup (startup logs). Value range: N/A. |
time_offset |
AccessConfigTimeOffset object |
Parameter description: Time offset for log ingestion. Value range: N/A. |
event_level |
Array of strings |
Parameter description: Event level. The value can be information, warning, error, critical, or verbose. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
offset |
Long |
Parameter description: 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 604,800. Value range: N/A. |
unit |
String |
Parameter description: Unit of the time offset. The value can be day, hour, or sec. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
log_group_id |
String |
Parameter description: Log group ID. Value range: N/A. |
log_stream_id |
String |
Parameter description: Log stream ID. Value range: N/A. |
log_group_name |
String |
Parameter description: Log group name. Value range: N/A. |
log_stream_name |
String |
Parameter description: Log stream name. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
host_group_id_list |
Array of strings |
Parameter description: Host group ID list. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
key |
String |
Parameter description: Tag key, which must be unique. Constraints: N/A. Value range: It can contain up to 128 characters, including only letters, digits, spaces, and special characters (_.:=+-@). Do not start or end with a space, nor start with sys. |
value |
String |
Parameter description: Tag value. Value range: It can contain up to 255 characters, including only letters, digits, spaces, and special characters (_.:=+-@). |
Parameter |
Type |
Description |
---|---|---|
field_name |
String |
Parameter description: Field name, which must be the same as that in keys. Value range: N/A. |
field_value |
String |
Parameter description: Field value. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
type |
String |
Parameter description: Parser type. processor_regex: regular expression processor_split_string: delimiter processor_json: JSON processor_gotime: custom time type processor_filter_regex: log filtering processor_drop: type of fields to be deleted processor_rename: type of fields to be modified Value range: N/A. |
detail |
Detail object |
Parameter description: Parser configuration. Value range: N/A. |
Parameter |
Type |
Description |
---|---|---|
source_key |
String |
Parameter description: Custom time key field name. Value range: N/A. |
regex |
String |
Parameter description: Regular expression for parsing. This field is required for a single-line completely regular expression or a multi-line completely regular expression. Value range: N/A. |
keys |
Array of strings |
Parameter description: Field name list, which is consistent with the field_name field. Value range: N/A. |
multi_line_regex |
String |
Parameter description: First line regular expression. Value range: N/A. |
keep_source |
Boolean |
Parameter description: Whether to upload raw logs. Value range: N/A. |
keep_source_if_parse_error |
Boolean |
Parameter description: Whether to upload logs that fail to be parsed. Value range: N/A. |
split_sep |
String |
Parameter description: Delimiters. Value range: The maximum length of custom characters is 10 characters, and the maximum length of a custom string is 30 characters. |
split_type |
String |
Parameter description: Delimiter type. The value can be char (custom characters), special_char (invisible characters), or string (custom string). Value range: N/A. |
fields |
Map<String,String> |
Parameter description: List of added fields, in [/topic/body/section/table/tgroup/tbody/row/entry/p/br {""}) (br] format. Value range: N/A. |
drop_keys |
Array of strings |
Parameter description: List of deleted fields. Value range: N/A. |
source_keys |
Array of strings |
Parameter description: List of source field names for renaming fields. Value range: N/A. |
dest_keys |
Array of strings |
Parameter description: List of field names that are renamed and replaced. Value range: N/A. |
expand_depth |
Integer |
Parameter description: JSON parsing depth. The value ranges from 1 (default) to 4. Value range: N/A. |
expand_connector |
String |
Parameter description: JSON parsing field name connector. Value range: N/A. |
source_format |
String |
Parameter description: Custom time format. Value range: N/A. |
source_value |
String |
Parameter description: Custom time field value. Value range: N/A. |
set_time |
Boolean |
Parameter description: Whether to enable the custom time function. Value range: N/A. |
include |
Map<String,String> |
Parameter description: 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. Value range: N/A. |
exclude |
Map<String,String> |
Parameter description: 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. Value range: N/A. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Parameter description: Error code. Value range: Minimum characters: 8 Maximum characters: 8 |
error_msg |
String |
Parameter description: Error message. Value range: N/A. |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Parameter description: Error code. Value range: Minimum characters: 8 Maximum characters: 8 |
error_msg |
String |
Parameter description: Error message. Value range: N/A. |
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.
-
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