华为云用户手册

  • 打包项目 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“$SPARK_HOME” )下。 若运行“Spark on HBase”样例程序,需要在Spark客户端的“spark-defaults.conf”配置文件中将配置项“spark.yarn.security.credentials.hbase.enabled”设置为“true”(该参数值默认为“false”,改为“true”后对已有业务没有影响。如果要卸载HBase服务,卸载前请将此参数值改回“false”),将配置项“spark.inputFormat.cache.enabled”设置为“false”。
  • 提交命令 假设用例代码打包后的jar包名为spark-hbaseContext-test-1.0.jar,并将jar包放在客户端“$SPARK_HOME”目录下,以下命令均在“$SPARK_HOME”目录执行。 yarn-client模式: java/scala版本(类名等请与实际代码保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode client --jars /opt/female/protobuf-java-2.5.0.jar --conf spark.yarn.user.classpath.first=true --class com.huawei.bigdata.spark.examples.datasources.HBaseSource SparkOnHbaseJavaExample-1.0.jar python版本(文件名等请与实际保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode client --conf spark.yarn.user.classpath.first=true --jars SparkOnHbaseJavaExample-1.0.jar,/opt/female/protobuf-java-2.5.0.jar HBaseSource.py yarn-cluster模式: java/scala版本(类名等请与实际代码保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode cluster --jars /opt/female/protobuf-java-2.5.0.jar --conf spark.yarn.user.classpath.first=true --class com.huawei.bigdata.spark.examples.datasources.HBaseSource SparkOnHbaseJavaExample-1.0.jar python版本(文件名等请与实际保持一致,此处仅为示例) bin/spark-submit --master yarn --deploy-mode cluster --conf spark.yarn.user.classpath.first=true --jars SparkOnHbaseJavaExample-1.0.jar,/opt/female/protobuf-java-2.5.0.jar HBaseSource.py
  • Python样例代码 下面代码片段仅为演示,具体代码参见SparkOnHbasePythonExample中的HBaseSource文件: # -*- coding:utf-8 -*- """ 【说明】 由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现 """ from py4j.java_gateway import java_import from pyspark.sql import SparkSession # 创建SparkSession spark = SparkSession\ .builder\ .appName("HBaseSourceExample")\ .getOrCreate() # 向sc._jvm中导入要运行的类 java_import(spark._jvm, 'com.huawei.bigdata.spark.examples.datasources.HBaseSource') # 创建类实例并调用方法,传递sc._jsc参数 spark._jvm.HBaseSource().execute(spark._jsc) # 停止SparkSession spark.stop()
  • 场景说明 在同一个客户端进程内同时访问 FusionInsight ZooKeeper和第三方的ZooKeeper时,为了避免访问连接ZooKeeper认证冲突,提供了样例代码使HBase客户端访问FusionInsight ZooKeeper和客户应用访问第三方ZooKeeper。 以下为“src/main/resources”目录下提供的与认证相关的配置文件。 zoo.cfg # The configuration in jaas.conf used to connect fi zookeeper.zookeeper.sasl.clientconfig=Client_new[1] # Principal of fi zookeeper server side. zookeeper.server.principal=zookeeper/hadoop.hadoop.com[2] # Set true if the fi cluster is security mode. # The other two parameters doesn't work if the value is false. zookeeper.sasl.client=true[3] [1] zookeeper.sasl.clientconfig:指定使用jaas.conf文件中的对应配置访问FusionInsight ZooKeeper; [2] zookeeper.server.principal:指定ZooKeeper服务端使用principal; [3] zookeeper.sasl.client:如果 MRS 集群是安全模式,该值设置为“true”,否则设置为“false”,设置为“false”的情况下,“zookeeper.sasl.clientconfig”和“zookeeper.server.principal”参数不生效。 jaas.conf Client_new { [4] com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="D:\\work\\sample_project\\src\\hbase-examples\\hbase-zk-example\\target\\classes\\conf\\user.keytab" [5] principal="hbaseuser1" useTicketCache=false storeKey=true debug=true; }; Client { [6] org.apache.zookeeper.server.auth.DigestLoginModule required username="bob" password="xxxxxx"; [7] }; [4] Client_new:zoo.cfg中指定的读取配置,当该名称修改时,需要同步修改zoo.cfg中对应配置。 [5] keyTab :指明工程使用的“user.keytab”在运行样例的主机上的保存路径,使用绝对路径便于更好定位文件位置。在Windows环境和Linux环境下配置时需注意区分不同操作系统路径书写方式,即“\\”与“\”差异。 [6] Client:第三方ZooKeeper使用该配置进行访问连接,具体连接认证配置由第三方ZooKeeper版本决定。 [7] password:密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。
  • 功能介绍 针对添加了二级索引的用户表,您可以通过Filter来查询数据。其数据查询性能高于针对无二级索引用户表的数据查询。 HIndex支持的Filter类型为“SingleColumnValueFilter”,“SingleColumnValueExcludeFilter”以及“SingleColumnValuePartitionFilter”。 HIndex支持的Comparator为“BinaryComparator”,“BitComparator”,“LongComparator”,“DecimalComparator”,“DoubleComparator”,“FloatComparator”,“IntComparator”,“NullComparator”。 二级索引的使用规则如下: 针对某一列或者多列创建了单索引的场景下: 当查询时使用此列进行过滤时,不管是AND还是OR操作,该索引都会被利用来提升查询性能。 例如:Filter_Condition(IndexCol1) AND/OR Filter_Condition(IndexCol2) 当查询时使用“索引列AND非索引列”过滤时,此索引会被利用来提升查询性能。 例如:Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(NonIndexCol1) 当查询时使用“索引列OR非索引列”过滤时,此索引将不会被使用,查询性能不会因为索引得到提升。 例如:Filter_Condition(IndexCol1) AND/OR Filter_Condition(IndexCol2) OR Filter_Condition(NonIndexCol1) 针对多个列创建的联合索引场景下: 当查询时使用的列(多个),是联合索引所有对应列的一部分或者全部,且列的顺序与联合索引一致时,此索引会被利用来提升查询性能。 例如,针对C1、C2、C3列创建了联合索引,生效的场景包括: Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) Filter_Condition(IndexCol1) 不生效的场景包括: Filter_Condition(IndexCol2) AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol2) Filter_Condition(IndexCol3) 当查询时使用“索引列AND非索引列”过滤时,此索引会被利用来提升查询性能。 例如: Filter_Condition(IndexCol1) AND Filter_Condition(NonIndexCol1) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(NonIndexCol1) 当查询时使用“索引列OR非索引列”过滤时,此索引不会被使用,查询性能不会因为索引得到提升。 例如: Filter_Condition(IndexCol1) OR Filter_Condition(NonIndexCol1) (Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2))OR ( Filter_Condition(NonIndexCol1)) 当查询时使用多个列进行范围查询时,只有联合索引中最后一个列可指定取值范围,前面的列只能设置为“=”。 例如:针对C1、C2、C3列创建了联合索引,需要进行范围查询时,只能针对C3设置取值范围,过滤条件为“C1=XXX,C2=XXX,C3=取值范围”。 针对添加了二级索引的用户表,可以通过Filter来查询数据,在单列索引和复合列索引上进行过滤查询,查询结果都与无索引结果相同,且其数据查询性能高于无二级索引用户表的数据查询性能。
  • 代码样例 下面代码片段在com.huawei.hadoop.hbase.example包的“HBaseSample”类的testScanDataByIndex方法中: 样例:使用二级索引查找数据 public void testScanDataByIndex() { LOG .info("Entering testScanDataByIndex."); Table table = null; ResultScanner scanner = null; try { table = conn.getTable(tableName); // Create a filter for indexed column. Filter filter = new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("name"), CompareOperator.EQUAL, "Li Gang".getBytes()); Scan scan = new Scan(); scan.setFilter(filter); scanner = table.getScanner(scan); LOG.info("Scan indexed data."); for (Result result : scanner) { for (Cell cell : result.rawCells()) { LOG.info("{}:{},{},{}", Bytes.toString(CellUtil.cloneRow(cell)), Bytes.toString(CellUtil.cloneFamily(cell)), Bytes.toString(CellUtil.cloneQualifier(cell)), Bytes.toString(CellUtil.cloneValue(cell))); } } LOG.info("Scan data by index successfully."); } catch (IOException e) { LOG.error("Scan data by index failed."); } finally { if (scanner != null) { // Close the scanner object. scanner.close(); } try { if (table != null) { table.close(); } } catch (IOException e) { LOG.error("Close table failed."); } } LOG.info("Exiting testScanDataByIndex."); }
  • 功能简介 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中addIndices用于创建全局二级索引。 全局二级索引的创建需要指定索引列、覆盖列(可选)、索引表预分区(可选,建议指定)。 在已有存量数据的表上创建全局二级索引,需要创建索引预分区,防止索引表出现热点,索引表数据的rowkey由索引列构成,并且包含分隔符,格式为“\x01索引值\x00”,因此预分区需要指定成对应格式,例如,当使用id列和age列作为索引列时,两个列均为整数,使用id列完成预分区,可以指定索引表预分区点为: \x010,\x011,\x012....
  • 代码样例 以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testDelete方法中。 public void testDelete() { LOG.info("Entering testDelete."); byte[] rowKey = Bytes.toBytes("012005000201"); Table table = null; try { // Instantiate an HTable object. table = conn.getTable(tableName); // Instantiate an Delete object. Delete delete = new Delete(rowKey); // Submit a delete request. table.delete(delete); LOG.info("Delete table successfully."); } catch (IOException e) { LOG.error("Delete table failed " ,e); } finally { if (table != null) { try { // Close the HTable object. table.close(); } catch (IOException e) { LOG.error("Close table failed " ,e); } } } LOG.info("Exiting testDelete."); } 如果被删除的cell所在的列族上设置了二级索引,也会同步删除索引数据。
  • Doris应用开发开发流程介绍 开发流程中各阶段的说明如下图所示。 图1 Doris应用程序开发流程 表1 Doris应用开发的流程说明 阶段 说明 参考文档 准备开发环境 在进行应用开发前,需首先准备开发环境,推荐使用Java语言进行开发,使用IntelliJ IDEA工具,同时完成JDK、Maven等初始配置。 准备本地应用开发环境 准备连接集群配置文件 应用程序开发或运行过程中,需通过集群相关配置文件信息连接MRS集群,配置文件通常包括用于安全认证的用户文件,可从已创建好的MRS集群中获取相关内容。 用于程序调测或运行的节点,需要与MRS集群内节点网络互通,同时配置hosts 域名 信息。 准备连接Doris集群配置文件 配置并导入样例工程 Doris提供了不同场景下的多种样例程序,用户可获取样例工程并导入本地开发环境中进行程序学习。 配置并导入JDBC样例工程 配置并导入SpringBoot样例工程 配置安全认证 使用JDBC或SpringBoot接口连接Doris时,需配置具有Doris管理员权限的用户进行安全认证。 根据业务场景开发程序 根据实际业务场景开发程序,调用组件接口实现对应功能。 Doris JDBC接口调用样例程序 编译并运行程序 将开发好的程序编译运行,用户可在本地Windows开发环境中进行程序调测运行,也可以将程序编译为Jar包后,提交到Linux节点上运行。 调测Doris应用 父主题: Doris开发指南(普通模式)
  • 响应示例 状态码: 200 查询地址组细节返回体 { "data" : { "address_set_type" : 0, "address_type" : 0, "description" : "", "id" : "cf18f0b1-0ce7-4eb8-83b6-4b33c8448e16", "name" : "ABC" } } 状态码: 400 Bad Request { "error_code" : "CFW.00200005", "error_msg" : "操作内容不存在" }
  • URI GET /v1/{project_id}/address-sets/{set_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 set_id 是 String 地址组id,可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 fw_instance_id 否 String 防火墙id,可通过防火墙ID获取方式获取 query_address_set_type 否 Integer 查询地址组类型,0表示自定义地址组,1表示预定义地址组
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 data data object 查询地址组详情数据 表5 data 参数 参数类型 描述 id String 地址组id name String 地址组名称 description String 地址组描述 address_set_type Integer 地址组类型,0表示自定义地址组,1表示WAF回源IP地址组,2表示DDoS回源IP地址组,3表示NAT64转换地址组 address_type Integer 地址类型0 ipv4,1 ipv6 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 删除规则返回数据 { "data" : { "id" : "ceaa0407-b9c8-4dfd-9eca-b6ead2dfd031", "name" : "name" } } 状态码: 400 Bad Request { "error_code" : "CFW.00900016", "error_msg" : "导入任务进行中,请任务结束后再操作" }
  • URI DELETE /v1/{project_id}/acl-rule/{acl_rule_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 acl_rule_id 是 String 规则id,可通过查询防护规则接口查询获得,通过返回值中的data.records.rule_id(.表示各对象之间层级的区分)获得。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 fw_instance_id 否 String 防火墙id,可通过防火墙ID获取方式获取
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。可通过如何获取用户Token获取。 表4 请求Body参数 参数 是否必选 参数类型 描述 fw_instance_id 是 String 防火墙id,可通过防火墙ID获取方式获取 lts_enable 是 Integer 是否开启LTS,1表示是,0表示不是 lts_log_group_id 是 String LTS日志分组id,可通过查询LTS( 云日志 服务)下查询账号下所有日志组接口获得,通过返回值中的log_groups.log_group_id(.表示各对象之间层级的区分)获得 lts_attack_log_stream_id 否 String 攻击日志流id,可通过查询LTS(云日志服务)下查询指定日志组下的所有日志流接口获得,通过返回值中的log_streams.log_stream_id(.表示各对象之间层级的区分)获得 lts_attack_log_stream_enable 否 Integer 是否开启攻击日志流,1表示是,0表示不是 lts_access_log_stream_id 否 String 访问控制日志流id,可通过查询LTS(云日志服务)下查询指定日志组下的所有日志流接口获得,通过返回值中的log_streams.log_stream_id(.表示各对象之间层级的区分)获得 lts_access_log_stream_enable 否 Integer 是否开启访问控制流,1表示是,0表示不是 lts_flow_log_stream_id 否 String 流量日志id,可通过查询LTS(云日志服务)下查询指定日志组下的所有日志流接口获得,通过返回值中的log_streams.log_stream_id(.表示各对象之间层级的区分)获得 lts_flow_log_stream_enable 否 Integer 是否开启流量日志,1表示是,0表示不是
  • URI POST /v1/{project_id}/cfw/logs/configuration 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 表2 Query参数 参数 是否必选 参数类型 描述 fw_instance_id 是 String 防火墙id,可通过防火墙ID获取方式获取 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0
  • 请求示例 给项目id为408972e72dcd4c1a9b033e955802a36b下的防火墙4d6c860a-0338-49e8-ac64-fcaeb4182ba5添加日志流配置,lts分组id为20282428-a8f9-4e75-8246-165e64cf8ba8,访问控制日志流关闭,流量日志流关闭,攻击日志流关闭,lts关闭。 https://{Endpoint}/v1/408972e72dcd4c1a9b033e955802a36b/cfw/logs/configuration?fw_instance_id=4d6c860a-0338-49e8-ac64-fcaeb4182ba5&enterprise_project_id=default { "fw_instance_id" : "4d6c860a-0338-49e8-ac64-fcaeb4182ba5", "lts_enable" : 0, "lts_log_group_id" : "20282428-a8f9-4e75-8246-165e64cf8ba8", "lts_attack_log_stream_enable" : 0, "lts_access_log_stream_enable" : 0, "lts_flow_log_stream_enable" : 0 }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。可通过如何获取用户Token获取。 表4 请求Body参数 参数 是否必选 参数类型 描述 fw_instance_id 是 String 防火墙实例id,创建 云防火墙 后用于标志防火墙由系统自动生成的标志id,可通过调用查询防火墙实例接口。 object_id 是 String 防护对象id,是创建云防火墙后用于区分互联网边界防护和VPC边界防护的标志id,可通过调用查询防火墙实例接口获得,通过返回值中的data.records.protect_objects.object_id(.表示各对象之间层级的区分)获得,注意type为0的为互联网边界防护对象id,type为1的为VPC边界防护对象id,type可通过data.records.protect_objects.type(.表示各对象之间层级的区分)获得 domain_names 是 Array of DomainSetInfoDto objects 域名列表 表5 DomainSetInfoDto 参数 是否必选 参数类型 描述 domain_name 是 String 域名,如www.test.com description 否 String 域名描述
  • 请求示例 给项目id为14181c1245cf4fd786824efe1e2b9388下的域名组添加域名,防火墙id为546af3f8-88e9-47f2-a205-2346d7090925,防护对象id为ae42418e-f077-41a0-9d3b-5b2f5ad9102b,域名组id为78719348-6d79-477e-acec-676a29842ab2,域名为www.bnm.com和www.vbc.com https://{Endpoint}v1/14181c1245cf4fd786824efe1e2b9388/domain-set/domains/78719348-6d79-477e-acec-676a29842ab2?fw_instance_id=546af3f8-88e9-47f2-a205-2346d7090925&enterprise_project_id=default { "domain_names" : [ { "description" : "", "domain_name" : "www.bnm.com" }, { "description" : "", "domain_name" : "www.vbc.com" } ], "fw_instance_id" : "546af3f8-88e9-47f2-a205-2346d7090925", "object_id" : "ae42418e-f077-41a0-9d3b-5b2f5ad9102b" }
  • URI POST /v1/{project_id}/domain-set/domains/{set_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 set_id 是 String 域名组id,可通过查询域名组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 fw_instance_id 否 String 防火墙id,可通过防火墙ID获取方式获取
  • URI DELETE /v1/{project_id}/black-white-list/{list_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 list_id 是 String 黑白名单列表id,可通过查询黑白名单列表接口查询获得,通过返回值中的data.records.list_id(.表示各对象之间层级的区分)获得。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 fw_instance_id 否 String 防火墙id,可通过防火墙ID获取方式获取
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 data BlackWhiteListId object 删除黑白名单响应数据 表5 BlackWhiteListId 参数 参数类型 描述 id String 黑白名单id name String 黑白名单名称,为黑白名单的地址 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求示例 删除项目id为9d80d070b6d44942af73c9c3d38e0429下的黑白名单id为2eee3fe8-0b9b-49ac-8e7f-eaafa321e99a的黑白名单 https://{Endpoint}/v1/9d80d070b6d44942af73c9c3d38e0429/black-white-list/2eee3fe8-0b9b-49ac-8e7f-eaafa321e99a
  • 响应示例 状态码: 200 查询服务组详情返回值 { "data" : { "service_set_type" : 0, "id" : "221cfdca-3abf-4c30-ab0d-516a03c70866", "name" : "ceshi2" } } 状态码: 400 Bad Request { "error_code" : "CFW.00200005", "error_msg" : "操作内容不存在" }
  • URI GET /v1/{project_id}/service-sets/{set_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 set_id 是 String 服务组id,可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 fw_instance_id 否 String 防火墙id,可通过防火墙ID获取方式获取 query_service_set_type 否 Integer 查询服务组类型,0表示自定义服务组,1表示预定义服务组
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 data ServiceSetDetailResponseDto object 服务组详情数据 表5 ServiceSetDetailResponseDto 参数 参数类型 描述 id String 服务组id name String 服务组名称 description String 服务组描述信息 service_set_type Integer 服务组类型,0表示自定义服务组,1表示常用WEB服务,2表示常用远程登录和PING,3表示常用数据库 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 data GetCreateFirewallJobResponseData object 创建按需防火墙返回数据。 表4 GetCreateFirewallJobResponseData 参数 参数类型 描述 id String 创建按需防火墙任务ID status String 任务执行状态,用于向客户显示创建防火墙是否成功。 取值: 值为“Running”,表示任务正在执行。 值为“Success”,表示任务执行成功。 值为“Failed”,表示任务执行失败。 begin_time String 创建时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 end_time String 结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。
  • 请求示例 添加项目id为14181c1245cf4fd786824efe1e2b9388,防护对象 id为1530de8a-522d-4771-9067-9fa4e2f53b48,名称为ceshi的IPv4的地址组。 https://{Endpoint}/v1/14181c1245cf4fd786824efe1e2b9388/address-set { "object_id" : "1530de8a-522d-4771-9067-9fa4e2f53b48", "name" : "ceshi", "description" : "", "address_type" : 0 }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 data AddressSetId object 添加地址组返回数据 表6 AddressSetId 参数 参数类型 描述 id String 地址组id name String 地址组名称 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 添加地址组返回值 { "data" : { "id" : "9dffcd62-23bf-4456-83fa-80fa0fee47db", "name" : "name" } } 状态码: 400 Bad Request { "error_code" : "CFW.00900020", "error_msg" : "地址组超过最大数量限制" }
共100000条