华为云用户手册

  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 package_list 是 Array of objects 应用安装包,详情请参见表3。 约束: 需至少选择一个区域的安装包,请先在OBS桶中上传相关安装包,具体操作请参见VR内容上云。 安装包区域需在当前集群区域范围内,同一区域不能选择多个安装包。 launch_path 否 String 应用启动路径(相对路径)。 修改3D应用的应用安装包时,若应用启动路径发生变化,可同时修改应用启动路径。 取值范围: 长度范围1到200个字符。 只允许输入中文字符、英文大小写字母、数字、空格及“_”、“-”、“.“、“/”。 archive_data 否 Boolean 是否保留相关云服务器上该应用旧数据。 true,表示保留相关云服务器上该应用旧数据。 false,表示不保留相关云服务器上该应用旧数据。 默认值:false。 表3 package字段数据结构说明 参数 是否必选 参数类型 描述 bucket_name 是 String 安装包所在OBS桶名称。 示例:cloudvr package_name 是 String 安装包名称。 示例:cvrapp.zip bucket_region 是 String OBS桶所在区域。 示例:cn-north-4
  • 响应示例 状态码为200时 { "application": { "id": "fe8e97a0-4350-11eb-8bb9-fa1640a9b002", "name": "test", "type": "vr", "session_hold_time": 3, "launch_path": "", "create_time": "2020-12-21T05:54:31Z", "status": "active", "description": "1234", "icon_name": "image_default.png", "policy_type": "black_list", "cluster_id": "50adbf76-412a-11eb-821b-fa1640a9b002", "package_list": [ { "bucket_name": "cvr1", "package_name": "1.zip", "package_size": "324.83MB", "bucket_region": "cn-north-4" }, { "bucket_name": "cvr2", "package_name": "2.zip", "package_size": "324.83MB", "bucket_region": "cn-east-3" } ] } } 状态码为400时 { "error_code" : "string", "error_msg" : "string" }
  • 请求示例 请求URL示例 POST https://{endpoint}/v2/cvr/applications 请求示例 创建应用,选择上海一和北京四的安装包,使用北京四区域的已有云服务器。 { "application": { "name": "test", "description": "1234", "type": "vr", "session_hold_time": 3, "policy": { "type": "black_list", "devices": [ "111111111" ] }, "package_list": [ { "bucket_name": "cvr1", "package_name": "1.zip", "bucket_region": "cn-north-4" }, { "bucket_name": "cvr2", "package_name": "2.zip", "bucket_region": "cn-east-3" } ], "existed_servers": [ { "server_id": "a4a4ae15-c7eb-40b5-9d0e-7f611404e112" }, { "server_id": "efd3ae15-c7eb-40b5-9d0e-7f611404e111" }, ] } }
  • 响应参数 状态码为200时 表6 响应Body参数 参数 参数类型 描述 application Object 应用信息,详情请参见表7。 表7 application字段数据结构说明 参数 参数类型 描述 id String 应用ID。 应用的唯一标识,格式为UUID。 name String 应用名称。 session_hold_time Integer 会话保持时间,单位分钟(min)。 若该值为-1,表示会话一直保持。 type String 应用类型。 应用类型枚举值: vr:表示VR应用。 3d:表示3D应用。 launch_path String 应用启动路径。 create_time String 应用创建时间。 时间格式例如:2020-05-20T03:30:52Z status String 应用状态。 应用状态枚举值: active:正常 creating:创建中 create_failed:创建失败 updating:修改中 update_failed:修改失败 deleting:删除中 delete_failed:删除失败 adding:添加中(添加云服务器) add_failed:添加失败 repairing:修复中 repair_failed:修复失败 description String 应用描述。 icon_name String 应用的图标名称。 cluster_id String 集群ID 。 应用所属集群的唯一标识,格式为UUID。 policy_type String 设备连接策略规则(黑、白名单)。 black_list:表示黑名单。 white_list:表示白名单。 package_list Array of objects 应用的安装包信息列表,详情请参见表8。 表8 package字段数据结构说明 参数 参数类型 描述 bucket_name String 安装包所在OBS桶名称。 示例:cloudvr package_name String 安装包名称。 示例:cvrapp.zip package_size String 安装包大小。 示例:100MB bucket_region String OBS桶所在区域。 示例:cn-north-4 状态码为400时 表9 响应Body参数 参数 参数类型 描述 error_code String 返回的错误码,如CVR.0001。 error_msg String 错误的英文描述。
  • 响应参数 状态码为200时 表2 响应参数 参数 参数类型 描述 count Integer 应用数量。 applications Array of objects 应用列表信息,详情请参见表3。 表3 application字段数据结构说明 参数 参数类型 描述 id String 应用ID。 应用的唯一标识,格式为UUID。 name String 应用名称。 session_hold_time Integer 会话保持时间,单位分钟(min)。 若该值为-1,表示会话一直保持。 type String 应用类型。 应用类型枚举值: vr:表示VR应用。 3d:表示3D应用。 launch_path String 应用启动路径。 create_time String 应用创建时间。 时间格式例如:2020-05-20T03:30:52Z status String 应用状态。 应用状态枚举值: active:正常 creating:创建中 create_failed:创建失败 updating:修改中 update_failed:修改失败 deleting:删除中 delete_failed:删除失败 adding:添加中(添加云服务器) add_failed:添加失败 repairing:修复中 repair_failed:修复失败 description String 应用描述。 icon_name String 应用的图标名称。 cluster_id String 集群ID 。 应用所属集群的唯一标识,格式为UUID。 policy_type String 设备连接策略规则(黑、白名单)。 black_list:表示黑名单。 white_list:表示白名单。 package_list Array of objects 应用的安装包信息列表,详情请参见表4。 表4 package字段数据结构说明 参数 参数类型 描述 bucket_name String 安装包所在OBS桶名称。 示例:cloudvr package_name String 安装包名称。 示例:cvrapp.zip package_size String 安装包大小。 示例:100MB bucket_region String OBS桶所在区域。 示例:cn-north-4 状态码为400时 表5 响应参数 参数 参数类型 描述 error_code String 返回的错误码,如CVR.0001。 error_msg String 错误的英文描述。
  • 响应示例 状态码为200时 { "count": 1, "applications": [ { "id": "fe8e97a0-4350-11eb-8bb9-fa1640a9b002", "name": "appname", "type": "vr", "session_hold_time": 3, "launch_path": "", "create_time": "2020-12-21T05:54:31Z", "status": "active", "description": "1234", "icon_name": "image_default.png", "policy_type": "black_list", "cluster_id": "50adbf76-412a-11eb-821b-fa1640a9b002", "package_list": [ { "bucket_name": "cvr1", "package_name": "1.zip", "package_size": "324.83MB", "bucket_region": "cn-north-4" }, { "bucket_name": "cvr2", "package_name": "2.zip", "package_size": "324.83MB", "bucket_region": "cn-east-3" } ] } ] 状态码为400时 { "error_code" : "string", "error_msg" : "string" }
  • 请求参数 表1 查询参数 参数 是否必选 参数类型 描述 name 否 String 根据应用名称进行模糊搜索。 id 否 String 根据应用ID进行精确搜索。 limit 否 Integer 每页显示的条目数量。 默认为1000,最大值为1000。 offset 否 Integer 偏移量,表示从此偏移量开始查询。 默认为0,最大值为1000。 status 否 String 应用的状态。 status的取值范围如下: active:正常 creating:创建中 create_failed:创建失败 updating:修改中 update_failed:修改失败 deleting:删除中 delete_failed:删除失败 adding:添加中(添加云服务器) add_failed:添加失败 repairing:修复中 repair_failed:修复失败 说明: 使用取值范围以外的status字段进行查询,将返回错误码。
  • URI DELETE /v1/{project_id}/cvr/render-task/{task_id} 该接口需要使用区域级终端节点调用,例如需停止华北-北京四区域的渲染任务,请使用华北-北京四的终端节点。 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户的项目ID。 task_id 是 String 渲染任务的ID,可以在接口渲染节点调度(区域级)的响应信息中获取。
  • 响应参数 状态码为200时 表3 响应参数 参数 参数类型 描述 gpu_ip String 分配给设备使用的 GPU云服务器 的IP地址。 link_token String 设备用于连接GPU云服务器的认证凭据。 task_id String 渲染任务的任务ID。 port String 云服务器端口。 状态码为400时 表4 响应参数 参数 参数类型 描述 error_code String 返回的错误码,如CVR.0001。 error_msg String 错误的英文描述。
  • 请求示例 请求URL示例 POST https://{endpoint}/v1/{project_id}/cvr/node/scheduler 请求示例 { "app_id": "5afa7bb2-53d7-11eb-a5aa-fa1640a9b002", "device_id": "477e10fc9938405cb2eceb631a0e6615", "device_brand": "HUAWEI", "device_type": "pc", "application_user": "user1", "protocol_type": "udp", "location": ["cn-north-1"], "resolution": "480p", "gpu_ip_type": "private" }
  • 响应示例 状态码为200时 OK { "gpu_ip" : "255.255.255.255", "link_token" : "******", "task_id" : "5afa7bb2-53d7-11eb-a5aa-fa1640a9b003", "port":"10001" } 状态码为400时 { "error_code" : "string", "error_msg" : "string" }
  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 app_id 是 String 设备需要使用的应用ID。 device_id 是 String 设备ID。 长度范围1到40个字符。 只允许输入英文大小写字母、数字及“_”、“-”。 device_brand 否 String 设备品牌。 长度范围1到30个字符。 只允许输入英文大小写字母、数字、空格及“_”、“-”、“.“。 device_type 否 String 设备类型。 device_type的取值范围如下: vr:VR头显 pc:台式机或笔记本电脑 mobile: 手机或平板 ideahub: 智慧屏 VR应用仅支持设备类型为vr,3D应用默认设备类型为pc。 application_launch_args 否 String 应用启动参数。 长度范围1到200个字符。 只允许输入中文字符、英文大小写字母、数字、空格、英文引号及“_”、“-”、“.“、“/”、“:”。 application_user 否 String 应用使用用户标识(该参数仅对3D应用生效)。 长度范围1到40个字符。 只允许输入英文大小写字母、数字及下划线“_”。 protocol_type 否 String 设备与云服务器进行通信时所使用的协议类型。 取值范围如下: udp:集成Android VR SDK的客户端需使用该协议 webrtc: 集成Windows SDK或Android 3D SDK的客户端需使用该协议 websocket:集成Web SDK的客户端需使用该协议 默认值:udp,VR应用仅支持udp协议类型。 location 否 Array of strings 区域列表或边缘小站列表。 分配指定区域中的空闲云服务器。 最多输入10个区域或边缘小站。 每个区域或边缘小站的长度不超过40个字符。 sandbox_enable 否 Boolean 该参数已废弃。 是否支持多路会话的云服务器(该参数仅对VR应用生效)。 true,表示支持多路会话的云服务器。此时,在单路会话和多路会话的云服务器上均可启动渲染任务。 false,表示不支持多路会话的云服务器。此时,只能在单路会话的云服务器上启动渲染任务。 默认值:false。 resolution 否 String GPU云服务器传给设备的画面分辨率(该参数仅对3D应用生效)。 允许输入480p,540p,720p,1080p,2k,4k。 默认值:1080p。 gpu_ip_type 否 String 分配给设备使用的GPU云服务器的IP类型。 public:表示响应的gpu_ip的IP地址为公网,适用于使用公网连接设备与云服务器的场景。 private: 表示响应的gpu_ip的IP地址为私网,适用于使用专线或者内网等连接设备与云服务器的场景。 默认值:public。
  • API概览 通过使用VR云渲游所提供的接口,您可以完整地使用VR云渲游的所有功能。 VR云渲游终端节点提供的具体API如表1所示。 表1 接口说明 子类型 说明 渲染节点调度 一般由设备调用,用于获取可以连接的GPU云服务器的IP地址等信息。 停止渲染任务 当用户头显处于连接中状态(运行VR或者3D应用)时,调用此接口,会使当前连接断连,即渲染任务停止。 获取渲染任务列表 获取渲染任务列表。 仅支持查询90天内的渲染任务信息。 获取应用列表 获取应用列表,可查看应用基本信息,如应用安装包。 其中,应用的安装包信息受限于集群所选择的区域,因此不会返回当前集群所在区域以外其他区域的安装包信息。 创建应用 创建一个应用,应用会自动安装到选择的云服务器上。 创建应用时,应用安装包区域需在当前集群区域范围内,若为VR应用或非预装的3D应用,需至少选择一个区域的安装包,选择了安装包的区域才能配置该区域的云服务器。预装的3D应用配置云服务器时无安装包区域限制。 一个用户最多创建500个应用。 修改应用安装包 修改指定应用的安装包。修改完成后,该应用安装包区域下的相关云服务器将重新下载安装包进行安装。 已预装的3D应用不支持调用该API修改安装包。 删除应用 删除应用。执行删除操作后,将从云服务器中卸载该应用。 获取指定云服务器上的应用列表 获取指定云服务器上的应用列表,包括需要安装和已经安装的应用。 获取云服务器列表 获取云服务器列表。
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65ewtrgaggshhk1223245sghjlse684b", "is_domain": false, "parent_id": "65ewtrgaggshhk1223245sghjlse684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4adasfjljaaaakla12334jklga9sasfg" }, "id": "a4adasfjljaaaakla12334jklga9sasfg", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": $ADMIN_PASS, //IAM用户密码,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于管理员创建IAM用户接口,使用AK/SK方式认证时,添加消息头后的请求如下所示。 1 2 3 4 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=****************
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。 accountid为IAM用户所属的账号ID。 username为要创建的IAM用户名。 email为IAM用户的邮箱。 **********为IAM用户的登录密码。 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=**************** { "user": { "domain_id": "accountid", "name": "username", "password": "**********", "email": "email", "description": "IAM User Description" } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“X-Subject-Token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在管理员创建IAM用户的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要创建IAM用户,由于IAM为全局服务,则使用任一区域的Endpoint,比如“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在管理员创建IAM用户的URI部分找到resource-path(/v3.0/OS-USER/users),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和IAM用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间的资源进行分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。 父主题: 使用前必读
  • 概述 欢迎使用VR云渲游平台(VR Cloud Rendering & Gaming Platform,CVR)。VR云渲游平台基于华为云基础设施多元架构、极致性能、端边云融合等优势,依托华为在处理器、GPU等领域多年技术积累,针对强交互类VR场景,面向教育培训、医疗健康、工业制造、游戏娱乐等行业,使用云渲染流化技术实现VR内容云上实时渲染、编码、推流并提供端侧接入SDK;平台具备对用户渲染集群、连接设备、应用等进行统一管理及细粒度业务监控。具有降低消费成本,提升用户体验,普及商业场景和保护内容版权等显著优势。 本文档提供了VR云渲游平台API的描述、语法、参数说明及示例等内容。 在调用VR云渲游平台API之前,请确保已经充分了解相关概念,详细信息请参见VR云渲游平台的《产品介绍》。 父主题: 使用前必读
  • 计费说明 测试计划服务关于包年/包月套餐、资源扩展(接口测试执行并发)、增值特性(测试设计、在线拨测按需套餐包、在线拨测按需)的计费项请参考表1。 表1 测试计划服务计费项 产品类型 计费项 计费项说明 计费公式 包年/包月套餐 人数 某一Region内,使用测试计划服务的租户人数。 单价*人数*购买时长 接口测试执行并发 执行并发数 某一Region内,租户中接口测试套件并发数量。 单价*并发数*购买时长 测试设计 人数 某一Region内,使用测试设计特性的租户人数。 单价*人数*购买时长 测试自动化工厂 并发数 某一Region内,租户中功能自动化测试套件并发数量。 单价*并发数*购买时长。
  • AppStage开发中心应用场景 互联网SaaS开发运营 在面对市场高速变化、产品盈利窗口窄时,经常由于研发工具难以满足项目实际需求,导致难以及时交付高质量的产品给客户;应用平台提供一站式工具链,覆盖应用开发各个环节,支持云上开发运维一体化,同时提供各种开发插件提升SaaS开发效率,帮助用户业务成功。 研发流程和知识能力沉淀 企业在面对云原生和数字化转型过程中,被动式的工具堆砌,缺少体系化的工具能力和持续的研发知识沉淀,研发工具能力建设影响业务的发展。应用平台开发中心通过一站式工具链实现流程Build In,提供海量研发资产模板,帮助客户实现研发的持续反馈和能力沉淀,提升研发能力和效率。 父主题: AppStage开发中心简介
  • 关联CodeArts项目 创建团队时会为团队关联服务,可以在“服务配置”页面的“服务基础信息”区域,查看已关联服务的中文名、英文名、所属产品、归属部门、服务状态等信息。 如果当前服务已关联项目,在“服务配置”页面的“服务扩展信息”区域,可查看关联项目名称、关联项目类型。如果当前服务未关联项目,需将服务关联项目,后续才可正常使用CodeArts服务的相关功能,具体操作如下: 在“服务配置”页面,单击“关联项目”。 在“关联项目”对话框中的“项目名称”下,输入项目名称(默认为当前服务名称,可自定义修改),根据实际业务需要在“项目类型”下拉框选择项目类型(Scrum、IPD-系统设备类、IPD-独立软件类),如图1所示,然后单击“确定”。 图1 关联项目 在“关联项目”对话框对将要关联的项目名称进行二次确认,单击“确定”。 关联项目成功后不可解除关联。 关联项目成功:在“服务配置”页面的“服务扩展信息”区域,可查看关联项目名称、关联项目类型。 关联项目失败:系统检测到您尚未进行凭证(AK/SK)授权时,将弹框提示关联失败,并提示您前往AppStage管理控制台进行凭证授权,完成凭证(AK/SK)授权后,返回“服务配置”页面,重新关联项目。
  • 更多操作 创建版本完成后,您还可以执行如下表2所示的操作。 表2 更多操作 操作 说明 编辑版本 说明: 未发布状态的版本支持编辑。 在“版本管理”页面的版本列表中,单击“操作”列的“编辑”。 在“编辑版本”页面,可编辑版本描述、产能、版本开始时间和版本发布时间。 单击“提交”。 删除版本 说明: 未发布状态的版本可以删除。 删除版本后其名下全部内容将同步被清空,此操作无法恢复,请谨慎操作。 在“版本管理”页面的版本列表中,单击“操作”列的“删除”。 在“删除版本”对话框,根据界面提示在文本框输入“确定删除”。 单击“确定”。 归档版本 说明: 已发布状态的版本可以归档。 在“版本管理”页面的版本列表中,单击“操作”列的“归档”。 单击“确定”。 移除归档版本 在“版本管理”页面,单击右上角的“查看归档版本”。 在归档版本列表中,单击“操作”列的“移除归档”。 单击“确定”。
  • AppStage开发中心基本概念 基本概念 说明 产品 产品是服务的合集,开发中心基于服务进行版本管理。 服务 服务是实现一系列功能的软件模块单元,是产品的组成要素,一个产品一般由一个或多个服务组成。将一个大型的应用程序可以拆分成一组小型、独立的服务。每个服务都运行在自己的进程中,并通过轻量级的通信机制(如HTTP或消息队列)进行相互通信。每个服务都专注于完成特定的业务功能,并且可以独立地进行开发、部署和扩展。 开发中心用户 开发中心的用户数根据购买规格有相应的用户数量限制,通过组织管理员添加后才能成为开发中心用户,或者申请成为开发中心用户。如果不是开发中心用户,则无法使用开发中心。 交付件 交付件是版本开发过程不同阶段所需或交付的必要文档。在交付件规划页面,系统内置了例如产品需求文档、升级指导书、版本配套表等交付件类型,同时可以添加自定义类型交付件,并为交付件上传文件作为交付件模板。在交付件管理页面,用户可以通过创建在线文档或上传离线文档两种方式创建及管理交付件文档,保证版本开发过程阶段性成果沉淀以及过程可追溯。 版本基线化 版本基线化是指在版本发布前,选择特定流水线最新一次的构建产物作为版本基线,将流水线构建产物与版本关联,版本发布审批通过后,开发中心将版本关联的软件包或镜像包信息通知给部署平台,以便后续部署变更。 产能 产能原指在一定时间内,企业所能生产的产品或提供的服务的数量。开发中心中特指版本开发团队每天能提供的开发人员的数量。 Scrum 增量迭代式的软件开发方法,通过最重要的迭代计划会议、每日站会、迭代回顾、验收会议来进行简单高效的管理。 IPD-系统设备类 面向系统设备类产品开发场景的IPD需求管理方法,通过结构化流程、强大的跨项目协作能力来对大型产品开发进行高质高效的管理。 IPD-独立软件类 面向独立软件类开发场景的IPD需求管理方法,通过结构化流程、强大的跨项目协作能力来对大型软件开发进行高质高效的管理。 开发插件 开发插件是一种软件应用程序,用于开发、编译、调试和部署软件。IDE通常包含代码编辑器、编译器、调试器和其他开发工具,以提供一个集成的开发环境,方便开发人员进行软件开发工作。 内建质量 内建质量指在产品或服务设计和开发过程中,将质量要求和标准纳入到产品或服务的设计和开发中,从而在产品或服务最初的构建阶段就实现了质量控制。这样做可以避免在后续阶段出现质量问题,提高产品或服务的可靠性和稳定性。 父主题: AppStage开发中心简介
  • 通过离线文档方式上传/更新/删除交付件 用户需对自己上传文件的安全风险负责,开发中心不对用户自己上传的文件做任何处理。 在“交付件管理”页面的交付件列表中,在无文档的交付件所在行的“操作”列单击“创建文档”。 在“上传文档”对话框,选择“交付方式”为“离线文档”,单击“添加文件”将本地已准备好的文档进行上传(只能上传ZIP、RAR、DOCX、DOC、XLS、XLSX格式的文件,且文件大小不能超过50MB)。 单击“确定”,上传离线文档成功。 (可选)如需更新离线文档,具体操作如下: 返回“交付件管理”页面的交付件列表中,在“交付方式”为“离线文档”的交付件所在行的“操作”列单击“更新文档”。 在“更新文档”对话框中,鼠标移至已有文档所在行并单击。 在“删除文件”对话框,单击“确认”,删除旧离线文档。 单击“添加文件”,将本地已准备好的新文档进行上传。 单击“确定”,更新离线文档成功。 (可选)如需删除离线文档,具体操作如下: 返回“交付件管理”页面的交付件列表中,在“交付方式”为“离线文档”的交付件所在行的“操作”列单击“删除文档”。 在“删除文件”对话框,单击“确认”,即可删除不需要的离线文档。
  • 配置流水线(以添加业务包构建任务为例) 在流水线的“任务编排”页面,单击,新建阶段。 单击,在“编辑阶段”页面,修改“阶段名称”为“构建阶段”,并将“总是运行”设置为“是”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。 在流水线的“构建阶段”,单击“新建任务”。 在“新建任务”页面的右侧区域,选择“构建”页签,单击“Build构建”后的“添加”,将此插件添加到任务中。 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图6所示。 图6 Build构建任务配置 在“新建构建任务”页面的“基本信息”页面,自定义任务名称(以“adadss-build”为例),归属项目默认为当前服务,源码源选择“Repo”,选择对应的代码仓库(以创建好的“adadss”仓库为例)以及分支“master”,单击“下一步”。 在“构建模板”页面,选择“空白构建模板”模板,然后单击“下一步”,进入“构建步骤”的“图形化”页签,该页面的“构建环境配置”和“代码下线配置”无需配置,保持默认配置即可。 配置构建步骤“Maven构建”。 返回“构建步骤”页签,单击“点击添加构建步骤”,在右侧“添加步骤”页面搜索“Maven构建”,鼠标移至插件卡片并单击“添加”,如图7所示。 图7 Maven构建 执行maven构建命令将业务代码打包,不同项目有所不同。 参考示例:mvn -Dassembly clean compile package -Dmaven.test.skip=true -U -T4 若某些jar包依赖不到,可将仓库地址添加在setting配置的公有依赖仓库。 配置镜像构建。 登录华为云 容器镜像服务 控制台,在左侧导航栏选择“我的镜像”,单击右上角“页面上传”,在“页面上传”对话框,创建组织(必须使用华为云账号),单击“选择镜像文件”,选择已经准备好的基础镜像tar包,单击“开始上传”,待任务进度显示“上传完成”,表示镜像文件上传成功。 基础镜像tar包仅需上传一次,后续可直接从镜像文件列表中选取。 在镜像仓库找到9.a上传的基础镜像,参照图8复制镜像地址。 图8 复制镜像地址 将9.b复制的镜像地址粘贴到Dockerfile文件中第一行FROM命令后,如图9所示。 图9 将镜像地址粘贴到Dockerfile文件中 返回华为云容器 镜像服务 控制台镜像列表中单击镜像tar包名称,进入镜像详情页面,选择“Pull/Push指南”页签,单击“操作步骤”中的“生成登录指令”。 在“登录指令”对话框中的“临时登录指令”框的指令末尾处单击,复制临时登录指令,如图10所示。 图10 复制临时登录指令 返回“构建步骤”页面,单击“添加步骤”,在右侧“添加步骤”页面搜索“执行Docker命令”,鼠标移至该插件卡片并单击“添加”。 单击“执行Docker命令”步骤,在右侧“命令”参数下单击“添加”添加docker命令,在“命令”下拉框中选择“login”,参数框中输入9.e获取的临时登录指令中login后的部分,例如“-u cn-north-7@K5X8GVN5B4H4B8KB9SDO -p 1dd00acee886bd05886cded19f5af1cb1e96326e4354fc0f3f493f12a3586518 swr.cn-north-7.myhuaweicloud.com”,登录环境以便Dockerfile文件中可正常获取基础镜像。 在“操作”列单击“+”继续添加docker命令,“命令”下拉框中选择“build”,并在参数框中输入命令,指定代码仓中的Dockerfile文件并构建镜像。 例如构建helloworldservice:23.11.02.1镜像,可输入“-t helloworldservice:23.11.02.1 -f ./deploy_docker/Dockerfile .”,其中“./deploy_docker/Dockerfile”为Dockerfile文件目录。 工作目录一般为根目录。 在“操作”列单击“+”继续添加docker命令,“命令”下拉框中选择“save”,并在参数框中输入命令,将镜像包保存为tar包。 例如将elloworldservice:23.11.02.1镜像包保存为helloworldservice.23.11.02.1.tar包,可输入“-o helloworldservice.23.11.02.1.tar helloworldservice:23.11.02.1”。至此,添加docker命令完成,如图11所示。 图11 执行docker命令 返回“构建步骤”页面,单击“添加步骤”,在右侧“添加步骤”页面搜索“Maven构建”,鼠标移至插件卡片并单击“添加”。执行zip命令,将tar包与业务代码中的package.json文件直接压缩成一个zip包。 如下命令,将helloworldservice.23.11.02.1.tar和package.json文件压缩为helloworldservice_23.11.02.1.zip包。 zip helloworldservice_23.11.02.1.zip helloworldservice.23.11.02.1.tar package.json 继续单击“添加步骤”,添加“上传文件到OBS”插件,在“上传文件到OBS”页面,参照表3配置相关参数,配置完成后单击右上角“新建”,配置构建任务完成。 表3 “上传文件到OBS”(业务包)步骤配置的参数说明 参数名称 参数说明 步骤显示名称 构建步骤的名称,默认为“上传文件到OBS”,保持默认或自定义修改均可。 授权用户 在下拉列表选择: 当前用户:上传到当前租户的OBS桶。 其他用户:可以通过选择IAM账号的方式上传到指定租户的OBS桶。 IAM账号 “授权用户”选择“其他用户”时需配置此参数,配置步骤如下: 单击“管理IAM账号”,进入“服务扩展点管理”页面。 单击“新建服务扩展点”,选择“IAM账户”,弹出“新建服务扩展点”对话框,填写以下参数,补充租户下用户的AK、SK即可: 连接名称:服务扩展点的名称。例如“obs权限”。 Access Key Id:访问密钥ID(AK),获取访问密钥AK/SK。 Secret Access Key:秘密访问密钥(SK),获取访问密钥AK/SK。 信息填写完成,单击“确定”。 构建产物路径 路径为10的zip包的相对路径或输入*模糊匹配(如“./DemoServiceB/*.zip”) 桶名 用户自定义构建结果上传到的目标OBS桶名。 OBS存储目录 用户自定义构建结果在OBS上的存储目录 OBS存储文件名 非必填项,构建结果在OBS上的存储文件名(不包含目录),留空时可上传多个文件,取构建产物文件名为OBS存储文件名;不为空时只能上传单个文件,如 application.jar。 是否上传文件夹 非必填项,可选择是否开启上传文件夹。 OBS头域 非必填项,上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。如:“键”填写成“x-frame-options”,“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的构建任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。 单击“确定”,添加业务包构建任务完成。 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。
  • 配置流水线(以添加代码检查任务为例) 在流水线的“任务编排”页面,单击,新建阶段,如图3所示。 图3 新建阶段 单击,在“编辑阶段”页面,修改“阶段名称”为“代码检查”,并将“总是运行”设置为“否”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。 在流水线的“代码检查”阶段,单击“新建任务”。 在“新建任务”页面的右侧区域,选择“代码检查”页签,单击“CodeArtsCheck代码检查”后的“添加”,将此插件添加到任务中,如图4所示。 图4 代码检查 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图5所示,进入“新建任务”页面,参照表2配置参数信息(此处以创建Repo源码源检查任务为例),配置完成后单击“新建任务”。 图5 创建代码检查任务 表2 参数说明 参数项 描述 归属项目 任务所属项目。默认填写,无需设置。 代码源 选择Repo,从代码托管拉取代码进行检查。 任务名称 代码检查任务名称,可自定义。 仓库 选择需要检查的代码仓库。 分支 填写需要检查的仓库分支名称。 检查语言 选择需要检查的代码语言。 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的代码检查任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。 单击“确定”,添加代码检查任务完成。 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。
共100000条