文档首页> 云日志服务 LTS> API参考> API说明> 日志转储> 创建日志转储(新版)
更新时间:2024-04-16 GMT+08:00
分享

创建日志转储(新版)

功能介绍

该接口用于创建OBS转储,DIS转储,DMS转储。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/transfers

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见:获取项目ID,获取账号ID,日志组ID、日志流ID

最小长度:32

最大长度:32

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

从IAM服务获取的用户Token,获取方式请参见:获取用户Token

最小长度:1000

最大长度:2000

Content-Type

String

该字段填为:application/json;charset=UTF-8。

最小长度:30

最大长度:30

表3 请求Body参数

参数

是否必选

参数类型

描述

log_group_id

String

日志组ID 最小长度:36 最大长度:36

最小长度:36

最大长度:36

log_streams

Array of LogStreams objects

日志流ID集合

log_transfer_info

log_transfer_info object

日志转储信息

表4 LogStreams

参数

是否必选

参数类型

描述

log_stream_id

String

日志流ID

最小长度:36

最大长度:36

log_stream_name

String

日志流名称

表5 log_transfer_info

参数

是否必选

参数类型

描述

log_transfer_type

String

日志转储类型。OBS指OBS日志转储,DIS指DIS日志转储,DMS指DMS日志转储。

log_transfer_mode

String

日志转储方式。cycle是指周期性转储,realTime是指实时转储。OBS转储只支持"cycle",DIS转储和DMS转储只支持"realTime"

枚举值:

  • cycle

  • realTime

log_storage_format

String

日志转储格式。只支持"RAW", "JSON"。RAW是指原始日志格式,JSON是指JSON日志格式。OBS转储和DIS转储支持JSON和RAW,DMS转储仅支持RAW。

枚举值:

  • JSON

  • RAW

log_transfer_status

String

日志转储状态,只支持"ENABLE","DISABLE","EXCEPTION"。ENABLE是指日志转储开启状态,DISABLE是指日志转储关闭状态,EXCEPTION是指日志转储异常状态

枚举值:

  • ENABLE

  • DISABLE

  • EXCEPTION

log_agency_transfer

log_agency_transfer object

委托转储信息。若配置委托转储,则需要输入该参数

log_transfer_detail

log_transfer_detail object

日志转储详细信息

表6 log_agency_transfer

参数

是否必选

参数类型

描述

agency_domain_id

String

委托方账号ID

最小长度:1

最大长度:128

agency_domain_name

String

委托方账号名称

最小长度:1

最大长度:128

agency_name

String

委托方配置的委托名称

最小长度:1

最大长度:128

agency_project_id

String

委托方项目ID

最小长度:32

最大长度:32

be_agency_domain_id

String

被委托方账号ID,实际配置转储的账号ID

最小长度:1

最大长度:128

be_agency_project_id

String

被委托方项目ID,实际配置转储的账号的项目ID

最小长度:32

最大长度:32

表7 log_transfer_detail

参数

是否必选

参数类型

描述

obs_period

Integer

OBS转储时间。当创建OBS转储时,必填此参数。与obs_period_unit组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

枚举值:

  • 1

  • 2

  • 3

  • 5

  • 6

  • 12

  • 30

obs_period_unit

String

OBS转储单位。当创建OBS转储时,必填此参数。与obs_period组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

枚举值:

  • min

  • hour

obs_bucket_name

String

OBS转储日志桶名称。当创建OBS转储时,必填此参数。

最小长度:3

最大长度:63

obs_encrypted_id

String

OBS转储KMS密钥ID。根据OBS转储日志桶是否加密判断,若OBS转储日志加密桶则必须填写该参数,若OBS转储日志桶则不需要此参数

最小长度:36

最大长度:36

obs_dir_pre_fix_name

String

OBS转储自定义转储路径。当创建OBS转储时,根据需要选填此参数。

最小长度:1

最大长度:64

obs_prefix_name

String

OBS转储日志文件前缀。当创建OBS转储时,根据需要选填此参数。

最小长度:1

最大长度:64

obs_time_zone

String

OBS转储时区。参数选择参考OBS转储时区表。如果选择该参数,则必须选择obs_time_zone_id。

obs_time_zone_id

String

OBS转储时区ID。参数选择参考OBS转储时区表。如果选择该参数,则必须选择obs_time_zone。

dis_id

String

DIS转储通道ID。当创建DIS转储时,必填此参数。

最小长度:1

最大长度:128

dis_name

String

DIS转储通道名称。当创建DIS转储时,必填此参数。

最小长度:1

最大长度:64

kafka_id

String

DMS转储kafka ID。当创建DMS转储时,必填此参数。创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

kafka_topic

String

DMS转储kafka topic。当创建DMS转储时,必填此参数。创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

obs_transfer_path

String

OBS转储路径,指OBS日志桶中的路径。

obs_eps_id

String

OBS企业项目ID。

obs_encrypted_enable

Boolean

OBS是否开启加密。

tags

Array of strings

若开启tag投递,该字段必须包含主机信息:hostIP、hostId、hostName、pathFile、collectTime; 公共字段有:logStreamName、regionName、logGroupName、projectId,为可选填;开启转储标签:streamTag,可选填

响应参数

状态码: 200

表8 响应Body参数

参数

参数类型

描述

log_group_id

String

日志组ID

最小长度:36

最大长度:36

log_group_name

String

日志组名称

最小长度:1

最大长度:64

log_streams

Array of log_streams objects

日志流集合

log_transfer_id

String

日志转储ID

最小长度:36

最大长度:36

log_transfer_info

log_transfer_info_RespBody object

日志转储信息

表9 log_streams

参数

参数类型

描述

log_stream_id

String

日志流ID

最小长度:36

最大长度:36

log_stream_name

String

日志流名称

最小长度:1

最大长度:64

表10 log_transfer_info_RespBody

参数

参数类型

描述

log_agency_transfer

log_agency_transfer object

委托转储信息。若转储为委托转储,则会返回该参数

log_create_time

Integer

日志转储创建时间

最小值:0

最大值:2147483647

log_storage_format

String

日志转储格式。只支持"RAW", "JSON"。RAW是指原始日志格式,JSON是指JSON日志格式。OBS转储和DIS转储支持JSON和RAW,DMS转储仅支持RAW

枚举值:

  • JSON

  • RAW

log_transfer_detail

TransferDetail object

日志转储详细信息

log_transfer_mode

String

日志转储方式。cycle是指周期性转储,realTime是指实时转储。OBS转储只支持"cycle",DIS转储和DMS转储只支持"realTime"。

枚举值:

  • cycle

  • realTime

log_transfer_status

String

日志转储状态,ENABLE是指日志转储开启状态,DISABLE是指日志转储关闭状态,EXCEPTION是指日志转储异常状态

枚举值:

  • ENABLE

  • DISABLE

  • EXCEPTION

log_transfer_type

String

日志转储类型。OBS指OBS日志转储,DIS指DIS日志转储,DMS指DMS日志转储。

枚举值:

  • OBS

  • DIS

  • DMS

表11 log_agency_transfer

参数

参数类型

描述

agency_domain_id

String

委托方账号ID

最小长度:1

最大长度:128

agency_domain_name

String

委托方账号名称

最小长度:1

最大长度:128

agency_name

String

委托方配置的委托名称

最小长度:1

最大长度:128

agency_project_id

String

委托方项目ID

最小长度:32

最大长度:32

be_agency_domain_id

String

被委托方账号ID,实际配置转储的账号ID

最小长度:1

最大长度:128

be_agency_project_id

String

被委托方项目ID,实际配置转储的账号的项目ID

最小长度:32

最大长度:32

表12 TransferDetail

参数

参数类型

描述

obs_period

Integer

OBS转储时间。当创建OBS转储时,必填此参数。与obs_period_unit组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

枚举值:

  • 1

  • 2

  • 3

  • 5

  • 6

  • 12

  • 30

obs_period_unit

String

OBS转储单位。当创建OBS转储时,必填此参数。与obs_period_unit组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

枚举值:

  • “min”

  • “hour”

obs_bucket_name

String

OBS日志桶名称。当创建OBS转储时,必填此参数。 最小长度:3 最大长度:63

最小长度:3

最大长度:63

obs_encrypted_id

String

OBS转储KMS密钥ID。根据OBS转储日志桶是否加密判断,若OBS转储日志桶加密则必须填写该参数,若OBS转储日志桶则不需要此参数。 最小长度:36 最大长度:36

最小长度:36

最大长度:36

obs_dir_pre_fix_name

String

OBS转储自定义转储路径。当创建OBS转储时,根据需要选填此参数。 正则约束: ^(/)?([a-zA-Z0-9.-]+)(/[a-zA-Z0-9.-]+)*(/)?$ 最小长度:1 最大长度:64

最小长度:1

最大长度:64

obs_prefix_name

String

OBS转储日志文件前缀。当创建OBS转储时,根据需要选填此参数。 正则约束: ^[a-zA-Z0-9._-]*$ 最小长度:1 最大长度:64

最小长度:1

最大长度:64

obs_time_zone

String

OBS转储时区(https://support.huaweicloud.com/api-lts/lts_api_0111.html)。如果选择该参数,则必须选择obs_time_zone_id。

obs_time_zone_id

String

OBS转储时区ID(https://support.huaweicloud.com/api-lts/lts_api_0111.html)。参数选择参考OBS转储时区表。如果选择该参数,则必须选择obs_time_zone。

dis_id

String

DIS转储通道ID。当创建DIS转储时,必填此参数。 最小长度:1 最大长度:128

最小长度:1

最大长度:128

dis_name

String

DIS转储通道名称。当创建DIS转储时,必填此参数。 最小长度:1 最大长度:128

最小长度:1

最大长度:128

kafka_id

String

DMS转储kafka ID。当创建DMS转储时,必填此参数。 创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

最小长度:36

最大长度:36

kafka_topic

String

DMS转储kafka topic。 创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

最小长度:1

最大长度:128

obs_transfer_path

String

OBS转储路径,指OBS日志桶中的路径。

最小长度:0

最大长度:256

obs_eps_id

String

OBS企业项目ID。

最小长度:0

最大长度:128

obs_encrypted_enable

Boolean

OBS是否开启加密。

枚举值:

  • true

  • false

tags

Array of strings

若开启tag投递,该字段必须包含主机信息:hostIP、hostId、hostName、pathFile、collectTime;

公共字段有:logStreamName、regionName、logGroupName、projectId,为可选填;

开启转储标签:streamTag,可选填

状态码: 400

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

最小长度:8

最大长度:8

error_msg

String

调用失败响应信息描述。

状态码: 500

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

最小长度:8

最大长度:8

error_msg

String

调用失败响应信息描述。

请求示例

  • 创建OBS转储

    POST https://{endpoint}/v2/{project_id}/transfers
    
    {
      "log_group_id" : "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
      "log_streams" : [ {
        "log_stream_id" : "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
      } ],
      "log_transfer_info" : {
        "log_transfer_type" : "OBS",
        "log_transfer_mode" : "xxxxx",
        "log_storage_format" : "XXX",
        "log_transfer_status" : "XXXXX",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "obs_period" : 2,
          "obs_period_unit" : "min",
          "obs_bucket_name" : "xxxxx",
          "obs_encrypted_id" : "1bd90032-1424-481f-8558-ba49854xxxxx",
          "obs_dir_pre_fix_name" : "xx",
          "obs_prefix_name" : "xxxxx",
          "obs_time_zone" : "UTC+01:00",
          "obs_time_zone_id" : "Africa/Lagos"
        }
      }
    }
  • 创建DIS转储

    POST https://{endpoint}/v2/{project_id}/transfers
    
    {
      "log_group_id" : "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
      "log_streams" : [ {
        "log_stream_id" : "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
      } ],
      "log_transfer_info" : {
        "log_transfer_type" : "DIS",
        "log_transfer_mode" : "xxxxx",
        "log_storage_format" : "XXX",
        "log_transfer_status" : "XXXXX",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "dis_id" : "i1y8vfMTvf4LQzxxxxx",
          "dis_name" : "xxxxx"
        }
      }
    }

响应示例

状态码: 200

创建转储请求响应成功。

  • 当创建OBS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "obs_period" : 2,
          "obs_prefix_name" : "",
          "obs_period_unit" : "min",
          "obs_transfer_path" : "/0002/LogTanks/cn-north-7/",
          "obs_bucket_name" : "0002",
          "obs_encrypted_enable" : false,
          "obs_dir_pre_fix_name" : "",
          "obs_time_zone" : "UTC+01:00",
          "obs_time_zone_id" : "Africa/Lagos",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }
  • 当创建DIS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "dis_id" : "xxxxx",
          "dis_name" : "xxxxxx",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }
  • 当创建DMS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "kafka_id" : "xxxxxx",
          "kafka_topic" : "xxxxx",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }

状态码: 400

BadRequest 非法请求 建议根据error_msg直接修改该请求。

{
  "error_code" : "LTS.0207",
  "error_msg" : "The log stream is associated by transfer"
}

状态码: 500

InternalServerError。表明服务端能被请求访问到,但是服务内部出错。

{
  "error_code" : "LTS.0207",
  "error_msg" : "The log stream is associated by transfer"
}

SDK代码示例

SDK代码示例如下。

  • 创建OBS转储

     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
    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 CreateTransferSolution {
    
        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");
    
            ICredential auth = new BasicCredentials()
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateTransferRequest request = new CreateTransferRequest();
            CreateTransferRequestBody body = new CreateTransferRequestBody();
            TransferDetail logTransferDetailLogTransferInfo = new TransferDetail();
            logTransferDetailLogTransferInfo.withObsPeriod(TransferDetail.ObsPeriodEnum.NUMBER_2)
                .withObsEncryptedId("1bd90032-1424-481f-8558-ba49854xxxxx")
                .withObsPrefixName("xxxxx")
                .withObsPeriodUnit("min")
                .withObsBucketName("xxxxx")
                .withObsDirPreFixName("xx")
                .withObsTimeZone("UTC+01:00")
                .withObsTimeZoneId("Africa/Lagos");
            CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer logAgencyTransferLogTransferInfo = new CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer();
            logAgencyTransferLogTransferInfo.withAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withAgencyDomainName("paas_apm_z004xxxxx_xx")
                .withAgencyName("test20210325")
                .withAgencyProjectId("2a473356cca5487f8373be891bfxxxxx")
                .withBeAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withBeAgencyProjectId("2a473356cca5487f8373be891bfxxxxx");
            CreateTransferRequestBodyLogTransferInfo logTransferInfobody = new CreateTransferRequestBodyLogTransferInfo();
            logTransferInfobody.withLogTransferType("OBS")
                .withLogTransferMode(CreateTransferRequestBodyLogTransferInfo.LogTransferModeEnum.fromValue("xxxxx"))
                .withLogStorageFormat(CreateTransferRequestBodyLogTransferInfo.LogStorageFormatEnum.fromValue("XXX"))
                .withLogTransferStatus(CreateTransferRequestBodyLogTransferInfo.LogTransferStatusEnum.fromValue("XXXXX"))
                .withLogAgencyTransfer(logAgencyTransferLogTransferInfo)
                .withLogTransferDetail(logTransferDetailLogTransferInfo);
            List<CreateTransferRequestBodyLogStreams> listbodyLogStreams = new ArrayList<>();
            listbodyLogStreams.add(
                new CreateTransferRequestBodyLogStreams()
                    .withLogStreamId("c776e1a7-8548-430a-afe5-xxxxxxxxxxxx")
            );
            body.withLogTransferInfo(logTransferInfobody);
            body.withLogStreams(listbodyLogStreams);
            body.withLogGroupId("8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx");
            request.withBody(body);
            try {
                CreateTransferResponse response = client.createTransfer(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());
            }
        }
    }
    
  • 创建DIS转储

     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
    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 CreateTransferSolution {
    
        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");
    
            ICredential auth = new BasicCredentials()
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateTransferRequest request = new CreateTransferRequest();
            CreateTransferRequestBody body = new CreateTransferRequestBody();
            TransferDetail logTransferDetailLogTransferInfo = new TransferDetail();
            logTransferDetailLogTransferInfo.withDisId("i1y8vfMTvf4LQzxxxxx")
                .withDisName("xxxxx");
            CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer logAgencyTransferLogTransferInfo = new CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer();
            logAgencyTransferLogTransferInfo.withAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withAgencyDomainName("paas_apm_z004xxxxx_xx")
                .withAgencyName("test20210325")
                .withAgencyProjectId("2a473356cca5487f8373be891bfxxxxx")
                .withBeAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withBeAgencyProjectId("2a473356cca5487f8373be891bfxxxxx");
            CreateTransferRequestBodyLogTransferInfo logTransferInfobody = new CreateTransferRequestBodyLogTransferInfo();
            logTransferInfobody.withLogTransferType("DIS")
                .withLogTransferMode(CreateTransferRequestBodyLogTransferInfo.LogTransferModeEnum.fromValue("xxxxx"))
                .withLogStorageFormat(CreateTransferRequestBodyLogTransferInfo.LogStorageFormatEnum.fromValue("XXX"))
                .withLogTransferStatus(CreateTransferRequestBodyLogTransferInfo.LogTransferStatusEnum.fromValue("XXXXX"))
                .withLogAgencyTransfer(logAgencyTransferLogTransferInfo)
                .withLogTransferDetail(logTransferDetailLogTransferInfo);
            List<CreateTransferRequestBodyLogStreams> listbodyLogStreams = new ArrayList<>();
            listbodyLogStreams.add(
                new CreateTransferRequestBodyLogStreams()
                    .withLogStreamId("c776e1a7-8548-430a-afe5-xxxxxxxxxxxx")
            );
            body.withLogTransferInfo(logTransferInfobody);
            body.withLogStreams(listbodyLogStreams);
            body.withLogGroupId("8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx");
            request.withBody(body);
            try {
                CreateTransferResponse response = client.createTransfer(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());
            }
        }
    }
    
  • 创建OBS转储

     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
    # coding: utf-8
    
    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 = __import__('os').getenv("CLOUD_SDK_AK")
        sk = __import__('os').getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateTransferRequest()
            logTransferDetailLogTransferInfo = TransferDetail(
                obs_period=2,
                obs_encrypted_id="1bd90032-1424-481f-8558-ba49854xxxxx",
                obs_prefix_name="xxxxx",
                obs_period_unit="min",
                obs_bucket_name="xxxxx",
                obs_dir_pre_fix_name="xx",
                obs_time_zone="UTC+01:00",
                obs_time_zone_id="Africa/Lagos"
            )
            logAgencyTransferLogTransferInfo = CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer(
                agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                agency_domain_name="paas_apm_z004xxxxx_xx",
                agency_name="test20210325",
                agency_project_id="2a473356cca5487f8373be891bfxxxxx",
                be_agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                be_agency_project_id="2a473356cca5487f8373be891bfxxxxx"
            )
            logTransferInfobody = CreateTransferRequestBodyLogTransferInfo(
                log_transfer_type="OBS",
                log_transfer_mode="xxxxx",
                log_storage_format="XXX",
                log_transfer_status="XXXXX",
                log_agency_transfer=logAgencyTransferLogTransferInfo,
                log_transfer_detail=logTransferDetailLogTransferInfo
            )
            listLogStreamsbody = [
                CreateTransferRequestBodyLogStreams(
                    log_stream_id="c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
                )
            ]
            request.body = CreateTransferRequestBody(
                log_transfer_info=logTransferInfobody,
                log_streams=listLogStreamsbody,
                log_group_id="8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx"
            )
            response = client.create_transfer(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 创建DIS转储

     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
    # coding: utf-8
    
    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 = __import__('os').getenv("CLOUD_SDK_AK")
        sk = __import__('os').getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateTransferRequest()
            logTransferDetailLogTransferInfo = TransferDetail(
                dis_id="i1y8vfMTvf4LQzxxxxx",
                dis_name="xxxxx"
            )
            logAgencyTransferLogTransferInfo = CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer(
                agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                agency_domain_name="paas_apm_z004xxxxx_xx",
                agency_name="test20210325",
                agency_project_id="2a473356cca5487f8373be891bfxxxxx",
                be_agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                be_agency_project_id="2a473356cca5487f8373be891bfxxxxx"
            )
            logTransferInfobody = CreateTransferRequestBodyLogTransferInfo(
                log_transfer_type="DIS",
                log_transfer_mode="xxxxx",
                log_storage_format="XXX",
                log_transfer_status="XXXXX",
                log_agency_transfer=logAgencyTransferLogTransferInfo,
                log_transfer_detail=logTransferDetailLogTransferInfo
            )
            listLogStreamsbody = [
                CreateTransferRequestBodyLogStreams(
                    log_stream_id="c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
                )
            ]
            request.body = CreateTransferRequestBody(
                log_transfer_info=logTransferInfobody,
                log_streams=listLogStreamsbody,
                log_group_id="8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx"
            )
            response = client.create_transfer(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 创建OBS转储

     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
    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")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateTransferRequest{}
    	obsEncryptedIdLogTransferDetail:= "1bd90032-1424-481f-8558-ba49854xxxxx"
    	obsPrefixNameLogTransferDetail:= "xxxxx"
    	obsDirPreFixNameLogTransferDetail:= "xx"
    	obsTimeZoneLogTransferDetail:= "UTC+01:00"
    	obsTimeZoneIdLogTransferDetail:= "Africa/Lagos"
    	logTransferDetailLogTransferInfo := &model.TransferDetail{
    		ObsPeriod: model.GetTransferDetailObsPeriodEnum().E_2,
    		ObsEncryptedId: &obsEncryptedIdLogTransferDetail,
    		ObsPrefixName: &obsPrefixNameLogTransferDetail,
    		ObsPeriodUnit: "min",
    		ObsBucketName: "xxxxx",
    		ObsDirPreFixName: &obsDirPreFixNameLogTransferDetail,
    		ObsTimeZone: &obsTimeZoneLogTransferDetail,
    		ObsTimeZoneId: &obsTimeZoneIdLogTransferDetail,
    	}
    	logAgencyTransferLogTransferInfo := &model.CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer{
    		AgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		AgencyDomainName: "paas_apm_z004xxxxx_xx",
    		AgencyName: "test20210325",
    		AgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    		BeAgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		BeAgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    	}
    	logTransferInfobody := &model.CreateTransferRequestBodyLogTransferInfo{
    		LogTransferType: "OBS",
    		LogTransferMode: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferModeEnum().XXXXX,
    		LogStorageFormat: model.GetCreateTransferRequestBodyLogTransferInfoLogStorageFormatEnum().XXX,
    		LogTransferStatus: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferStatusEnum().XXXXX,
    		LogAgencyTransfer: logAgencyTransferLogTransferInfo,
    		LogTransferDetail: logTransferDetailLogTransferInfo,
    	}
    	var listLogStreamsbody = []model.CreateTransferRequestBodyLogStreams{
            {
                LogStreamId: "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx",
            },
        }
    	request.Body = &model.CreateTransferRequestBody{
    		LogTransferInfo: logTransferInfobody,
    		LogStreams: listLogStreamsbody,
    		LogGroupId: "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
    	}
    	response, err := client.CreateTransfer(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 创建DIS转储

     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
    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")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateTransferRequest{}
    	disIdLogTransferDetail:= "i1y8vfMTvf4LQzxxxxx"
    	disNameLogTransferDetail:= "xxxxx"
    	logTransferDetailLogTransferInfo := &model.TransferDetail{
    		DisId: &disIdLogTransferDetail,
    		DisName: &disNameLogTransferDetail,
    	}
    	logAgencyTransferLogTransferInfo := &model.CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer{
    		AgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		AgencyDomainName: "paas_apm_z004xxxxx_xx",
    		AgencyName: "test20210325",
    		AgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    		BeAgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		BeAgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    	}
    	logTransferInfobody := &model.CreateTransferRequestBodyLogTransferInfo{
    		LogTransferType: "DIS",
    		LogTransferMode: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferModeEnum().XXXXX,
    		LogStorageFormat: model.GetCreateTransferRequestBodyLogTransferInfoLogStorageFormatEnum().XXX,
    		LogTransferStatus: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferStatusEnum().XXXXX,
    		LogAgencyTransfer: logAgencyTransferLogTransferInfo,
    		LogTransferDetail: logTransferDetailLogTransferInfo,
    	}
    	var listLogStreamsbody = []model.CreateTransferRequestBodyLogStreams{
            {
                LogStreamId: "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx",
            },
        }
    	request.Body = &model.CreateTransferRequestBody{
    		LogTransferInfo: logTransferInfobody,
    		LogStreams: listLogStreamsbody,
    		LogGroupId: "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
    	}
    	response, err := client.CreateTransfer(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

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

状态码

状态码

描述

200

创建转储请求响应成功。

400

BadRequest 非法请求 建议根据error_msg直接修改该请求。

500

InternalServerError。表明服务端能被请求访问到,但是服务内部出错。

错误码

请参见错误码

分享:

    相关文档

    相关产品