华为云用户手册

  • 响应示例 状态码: 200 目录资源使用情况 { "dir_usage" : { "used_capacity" : 1024000 } } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0102", "errMsg" : "Path is not directory" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。该接口仅适用于SFS Turbo上一代文件系统规格类型(标准型、标准型-增强版、性能型、性能型-增强版)。20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB、HPC缓存型的SFS Turbo文件系统,请使用“创建文件系统异步任务”接口。该接口并发请求数过大可能会影响文件系统性能,建议同时提交的查询请求不要超过 4 个。查询超大目录耗时较久,请不要重复提交。
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表5 响应Body参数 参数 参数类型 描述 dir_usage FsDirUasge object 消息描述 表6 FsDirUasge 参数 参数类型 描述 used_capacity Long 占用容量,单位:byte 最小值:0 状态码: 400 表7 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表8 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表9 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表10 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde",后端target_id为"11abef677ac40f46644d1d5cfc2424a4",删除后端 DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/targets/11abef677ac40f46644d1d5cfc2424a4
  • URI DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/targets/{target_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id target_id 是 String 绑定关系id 表2 Query参数 参数 是否必选 参数类型 描述 delete_data_in_file_system 否 Boolean 删除后端存储时是否同时删除文件系统内的联动目录及其数据文件,默认为 false。数据删除后无法恢复,请谨慎操作。
  • 响应参数 状态码: 202 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表5 响应Body参数 参数 参数类型 描述 target_id String 绑定关系id delete_data_in_file_system Boolean 删除后端存储时是否同时删除文件系统内的联动目录及其数据文件 lifecycle String 绑定状态。只支持DELETING和FAILED 枚举值: DELETING AVAILABLE MISCONFIGURED CREATING FAILED 状态码: 404 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 202 任务下发成功 { "target_id" : "00000334-xxxx-402d-a5d4-bxxxxx87b939", "delete_data_in_file_system" : false, "life_cycle" : "DELETING" } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0126", "errMsg" : "target not found, not bound yet" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "internal server error" }
  • 响应示例 状态码: 200 更新quota成功 { "path" : "/data/test", "capacity" : 1024, "inode" : 100000 } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0102", "errMsg" : "Path is not directory" } 状态码: 403 错误响应 { "errCode" : "SFS.TURBO.0113", "errMsg" : "dir not create quota" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 path String 合法的已存在的目录的全路径 capacity Integer 目录的容量大小,单位:MB inode Integer 目录的inode数量限制 used_capacity Integer 目录已使用的容量大小,单位:MB。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段 used_inode Integer 目录的已使用的inode数量。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 path 是 String 合法的已存在的目录的全路径 capacity 否 Integer 目录的容量大小,单位:MB; 设置为0会导致数据无法写入目录; capacity和quota至少二选一 inode 否 Integer 目录的inode数量限制; 设置为0会导致数据无法写入目录; capacity和quota至少二选一
  • 响应示例 状态码: 200 任务下发成功 { "gc_time" : 10 } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0002", "errMsg" : "share not exist" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的 token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 action 是 String 更新文件系统的操作类型。当前仅支持取值 config_gc_time gc_time 是 Integer 文件系统冷数据淘汰时间,单位为小时,取值范围 [1, 100000000]。系统默认为 60 小时
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表5 响应Body参数 参数 参数类型 描述 gc_time Integer 文件系统冷数据淘汰时间 状态码: 404 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 tags Array of Tag objects tag标签的列表 表4 Tag 参数 参数类型 描述 key String 标签的键。 最大长度128个字符。 key不能为空。 最小长度:1 最大长度:128 values Array of strings 值列表。每个值最大长度255个字符,如果values为空列表,则表示匹配任意值value。value之间为或的关系。 最小长度:0 最大长度:255
  • 请求示例 projectId为'c80a2157ba1d46c0825265947342077c',通用文件系统名为'bucketName',批量添加资源标签示例: POST https://{endpoint}/v3/sfs/tms/c80a2157ba1d46c0825265947342077c/file-systems/bucketName/tags/create 普通租户权限添加标签,请求体示例: { "tags":[ { "key":"key1", "value":"value1" }, { "key":"key2", "value":"value2" } ] }
  • 请求示例 projectId为'c80a2157ba1d46c0825265947342077c',offset为0,limit为10,查询资源实例示例: POST https://{endpoint}/v3/sfs/tms/c80a2157ba1d46c0825265947342077c/file-systems/resource-instances/count 普通租户权限查询资源实例,请求体示例: { "tags":[ { "key":"key1", "values":[ "value1", "value2" ] }, { "key":"key2", "values":[ "value1", "value2" ] } ], "matches":[ { "key":"resource_name", "value":"resource1" } ], "without_any_tag":"true" } op_service权限查询资源实例,请求体示例: { "sys_tags":[ { "key":"_sys_enterprise_project_id", "values":[ "5aa119a8-d25b-45a7-8d1b-88e127885635" ] } ], "matches":[ { "key":"resource_name", "value":"resource1" } ] }
  • 响应示例 { "tags":[ { "key":"key1", "value":[ "value1", "value2" ] }, { "key":"key2", "value":[ "value1", "value2" ] } ] }
  • URI POST /v3/sfs/tms/{project_id}/file-systems/resource-instances/filter?limit={limit}&offset={offset} 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 操作用户的项目ID,获取方法请参见获取项目ID。 limit 否 Int 查询记录数。默认为1000,limit最大为1000,最小值为1,不能为负数。 offset 否 Int 索引位置。 从第一条数据偏移offset条数据后开始查询。默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
  • 响应示例 普通租户权限查询资源实例,响应体示例: { "resources":[ { "resource_detail":"", "resource_id":"resouece1", "resource_name":"resouece1", "tags":[ { "key":"key1", "value":"value1" } ], "sys_tags":[] } ], "total_count":20 } op_service权限查询资源实例,响应体示例: { "resources":[ { "resource_detail":"", "resource_id":"resouece1", "resource_name":"resouece1", "tags":[ { "key":"key1", "value":"value1" } ], "sys_tags":[ { "key":"_sys_enterprise_project_id", "value":"5aa119a8-d25b-45a7-8d1b-88e127885635" } ] } ], "total_count":20 }
  • 请求示例 projectId为'c80a2157ba1d46c0825265947342077c',offset为10,limit为1,查询资源实例示例: POST https://{endpoint}/v3/sfs/tms/c80a2157ba1d46c0825265947342077c/file-systems/resource-instances/filter?limit=0&offset=10 普通租户权限查询资源实例,请求体示例: { "tags":[ { "key":"key1", "values":[ "value1", "value2" ] }, { "key":"key2", "values":[ "value1", "value2" ] } ], "matches":[ { "key":"resource_name", "value":"resource1" } ], "without_any_tag":"false" }
  • 常用环境变量说明 通过ServiceStage管理环境和部署应用,能够简化用户的配置。ServiceStage会设置一些环境变量,供应用使用,常用的环境变量包括下表所示内容: 表1 常用环境变量 环境变量名称 含义 PAAS_ CS E_SC_ENDPOINT ServiceComb引擎注册中心地址信息。 PAAS_CSE_CC_ENDPOINT ServiceComb引擎配置中心地址信息。 PAAS_PROJECT_NAME 项目名称。 CAS_APPLICATION_NAME ServiceStage的应用名称。 CAS_COMPONENT_NAME ServiceStage的组件名称。 CAS_INSTANCE_VERSION ServiceStage的部署版本号。 您可以结合不同微服务开发框架的机制,比如Spring Cloud提供的Place Holder机制、Java Chassis提供的“mapping.yaml”机制等来合理使用这些变量,减少部署需要手工输入的内容。 ServiceStage创建应用过程中,可以绑定中间件(如DCS、RDS)。应用绑定的中间件配置信息可以通过以下环境变量获取。
  • 什么是Mesher Mesher是Service Mesh的一个具体的实现,是一个轻量的代理服务以Sidecar的方式与微服务一起运行。 Service Mesh是由William Morgan定义: Service Mesh是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,Service Mesh保证请求可以在这些拓扑中可靠地传输。在实际应用当中,Service Mesh通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但应用程序不需要知道它们的存在。 随着云原生应用的崛起,Service Mesh逐渐成为一个独立的基础设施层。在云原生模型里,一个应用可以由数百个服务组成,每个服务可能有数千个实例,而每个实例可能会持续地发生变化。服务间通信不仅异常复杂,而且也是运行时行为的基础。管理好服务间通信对于保证端到端的性能和可靠性来说是非常重要的。 Service Mesh实际上就是处于TCP/IP之上的一个抽象层,假设底层的L3/L4网络能够点对点地传输字节(同时,也假设网络环境是不可靠的,所以Service Mesh必须具备处理网络故障的能力)。 从某种程度上说,Service Mesh有点类似TCP/IP。TCP对网络端点间传输字节的机制进行了抽象,而Service Mesh则是对服务节点间请求的路由机制进行了抽象。Service Mesh不关心消息体是什么,也不关心它们是如何编码的。应用程序的目标是“将某些东西从A传送到B”,而Service Mesh所要做的就是实现这个目标,并处理传送过程中可能出现的任何故障。 与TCP不同的是,Service Mesh有着更高的目标:为应用运行时提供统一的、应用层面的可见性和可控性。Service Mesh将服务间通信从底层的基础设施中分离出来,让它成为整个生态系统的一等公民——它因此可以被监控、托管和控制。
  • mesher性能损耗是多少? 服务网格技术实际利用了网络流量劫持的方式来管理服务间流量,除了mesher本身内部的逻辑处理会耗时之外,还会引起额外的用户态和内核态间转换(CPU会有额外消耗),而前者相对于后者性能影响极小,因此性能损耗基本取决于网络中传输的payload大小。以http协议举例,影响传输速度的就是header、body等内容的大小。mesher一次端到端调用中的延迟为1ms,一个典型的用户测试过自己真实的业务调用,加上mesher后,延迟高了4ms,在用户可接受范围内。 以下测试结果为加入mesher前后的性能测试对比,使用的payload很小,就是字符串helloworld,但是加入了一定的代码以增加服务端的计算时间来模仿业务代码执行耗时。 表1 测试结果 指标 使用前 使用后 TPS 1749 1496 Latency 2.8ms 3.34ms CPU 50% 100% Concurrency 5 5 从以上结果可以看出mesher本身性能损耗很低,性能的主要瓶颈是在业务代码,如果增大payload内容,性能将会进一步降低。 建议在初期选型与POC时,使用该技术进行业务间的调用以测试真实性能损耗。 父主题: ServiceComb引擎
  • URI URI格式: GET /v2.0/{project_id}/batches/{batch_id}/log 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 batch_id 是 String 批处理作业的ID。 表2 请求参数说明 参数名称 是否必选 参数类型 说明 from 否 Integer 起始日志的行号,默认显示最后100行日志。如果日志不足100行,从0行开始显示。 size 否 Integer 查询日志的数量。 type 否 String 当“type”为“driver”时,输出Spark Driver日志。 index 否 Integer 当提交的作业进行重试时,会有多个driver日志。“index”用于指定driver日志的索引号,默认为“0”。需要与“type”参数一起使用。如果只指定“index”,则“type”默认为“driver”。
  • 响应示例 { "is_success": "true", "message": "查询作业执行流图成功", "execute_graph": { "jid": "4e966f43f2c90b0e1bf3188ecf55504b", "name": "", "isStoppable": false, "state": "RUNNING", "start-time": 1578904488436, "end-time": -1, "duration": 516274 } }
  • 响应消息 表2 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 否 String 请求是否成功。 message 否 String 消息内容。 execute_graph 否 Object 查询作业计划的响应参数。具体请参考表3。 表3 execute_graph参数说明 参数名称 是否可选 参数类型 说明 jid 否 String flink作业id。 name 否 String flink作业名字。 isStoppable 否 Boolean 是否可停止。 state 否 String 作业运行状态。 start-time 否 Long 作业启动时间。 end-time 否 Long 作业停止时间。 duration 否 Long 作业运行时长。
  • 请求消息 表2 请求参数说明 参数名称 是否必选 参数类型 说明 job_ids 是 Array of Long 作业ID。 trigger_savepoint 否 Boolean 在停止作业之前,用户可以选择是否对作业创建保存点,保存作业的状态信息。类型为boolean。 当triggerSavePoint为true时,表示创建保存点。 当triggerSavePoint为false时,表示不创建保存点。默认为false。
  • 响应示例 { "is_success": true, "message": "导入作业成功", "job_mapping": [ { "old_job_id": "100", "new_job_id": "200", "remark": "Job successfully created" } ] }
  • 响应消息 表3 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 否 String 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_mapping 否 Array of Objects 导入作业的信息。具体请参考表4。 表4 job_mapping参数说明 参数名称 是否必选 参数类型 说明 old_job_id 否 Long 导入的作业ID。 new_job_id 否 Long 导入后的作业ID,如果“is_cover”为“false”,服务中有同名的作业,则该参数返回值为“-1”。 remark 否 String 导入作业的结果信息。
  • 请求示例 赋予某项目(项目ID:0732e57c728025922f04c01273686950)数据库db1的查询权限、数据表db1.tbl的删除权限、数据表指定列db1.tbl.column1的查询权限。 { "grant_project_id": "0732e57c728025922f04c01273686950", "action": "grant", "privileges": [ { "object": "databases.db1.tables.tb2.columns.column1", "privileges": ["SELECT"] }, { "object": "databases.db1.tables.tbl", "privileges": ["DROP_TABLE"] }, { "object": "databases.db1", "privileges": ["SELECT"] } ] } 赋予某用户dlitest的数据库dbtest的查询数据权限。 { "action": "grant", "privileges": [ { "object": "databases.dbtest", "privileges": [ "SELECT" ] } ], "user_name": "dlitest" }
共100000条