云服务器内容精选

  • 处理方法 检查浏览器网络连接是否正常。若无网络连接,请修复网络连接。刷新页面重试,若仍加载失败,请参照2继续排查处理。 如果电脑使用的是无线网络环境,请确保连接的稳定。 检查是否有proxy拦截。若已拦截,请解除拦截后刷新页面重试。 如果页面中的错误提示为“Connection got disposed”,在完成前两个步骤后仍无法正常加载页面,请尝试联系网络服务提供方确认其是否对websocket进行拦截。解除拦截后刷新页面重试。
  • 操作流程 CodeArts IDE Online的基本使用流程:创建IDE实例、启动IDE实例、CodeArts IDE Online编码、CodeArts IDE Online调试。 流程说明如下: 流程 说明 创建IDE实例 进入CodeArts IDE Online服务“我的IDE”页签,单击左上角“新建实例”,创建IDE实例。 启动IDE实例 创建IDE实例后会自动启动IDE实例,也可以在CodeArts IDE Online服务“我的IDE”页签单击实例卡片上,启动IDE实例。 CodeArts IDE Online编码 在CodeArts IDE Online中,可以编写代码,并对代码进行提交、构建和运行。 CodeArts IDE Online调试 在CodeArts IDE Online中,运行已提交的代码后,可以对代码进行在线调试。
  • 如何自动安装通过Open API创建的实例上的指定插件? 使用Open API创建的实例自动安装指定插件,目前可通过以下两种途径实现: 在实例的API参数“plugin_enable_list”中传入插件id,插件id是由插件作者和插件名组成,格式为“publisher.name”。 通过实例URL地址拼接的方式, 在“preinstallPlugins”传入插件id。 const envParams = { preinstallPlugins: [] } url = url + `&&session_env=${encodeURIComponent(JSON.stringify(envParams))}`
  • 实例相关权限 表1 实例相关权限 权限 对应API接口 授权项(Action) 依赖的授权项 IAM 项目 (Project) 企业项目(Enterprise Project) 创建IDE实例 POST /v2/{org_id}/instances cloudIDE:instance:create - √ × 删除IDE实例 DELETE /v2/instances/{instance_id} cloudIDE:instance:delete - √ × 启动IDE实例 PUT /v2/instances/{instance_id}/runtime cloudIDE:instance:start - √ × 停止IDE实例 DELETE /v2/instances/{instance_id}/runtime cloudIDE:instance:stop - √ × 访问IDE实例 仅支持CodeArts IDE Online内部调用,API方式不支持 cloudIDE:instance:access - √ × 修改IDE实例(仅修改描述和名称) PUT /v2/instances/{instance_id} cloudIDE:instance:update - √ × 分发实例给访问者 POST /v2/instances/{instance_id}/visitor cloudIDE:instance:assign - √ × 授权实例给用户 POST /v2/instance/{instance_id}/user cloudIDE:instance:auth - √ × 重置实例 POST /v2/instance/{instance_id}/reset cloudIDE:instance:reset - √ × 父主题: 权限策略和授权项
  • 公共查询权限 表1 公共查询权限 权限 对应API接口 授权项(Action) 依赖的授权项 IAM项目 (Project) 企业项目(Enterprise Project) 查询指定IDE实例详情 GET /v2/instances/{instance_id} cloudIDE:instance:get - √ × 查询用户实例列表 GET /v2/instances cloudIDE:instance:listInstances - √ × 查询租户实例列表 GET /v2/{org_id}/instances cloudIDE:instance:listOrgInstances - √ × 获取技术栈 GET /v2/stacks cloudIDE:stack:list - √ × 查询模板工程 GET /v2/templates cloudIDE:template:list - √ × 父主题: 权限策略和授权项
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 CodeArts IDE Online支持的自定义策略授权项如下所示: 公共查询权限 实例相关权限
  • 文档修订记录 文档修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。 修订记录 发布日期 第二十次正式发布,本次变更说明如下: codebreeze已从CodeArts IDE Online迁出,接口资料下线。 2025-06-17 第十九次正式发布,本次变更说明如下: 新增接口:查询插件分类 新增接口:插件发布 新增接口:获取插件检测结果 新增接口:获取当前用户下的发布商列表 新增接口:文件上传归一化 2023-04-11 第十八次正式发布,本次变更说明如下: CloudIDE服务更名为CodeArts IDE Online 2023-02-16 第十七次正式发布,本次变更说明如下: 新增接口:CreateAcceptance接口 新增接口:Create Request接口 新增接口:Show Result接口 2022-12-05 第十六次正式发布,本次变更说明如下: 新增接口:添加插件评论 新增接口:添加评论回复、回复评论回复 新增接口:添加新评星 新增接口:举报评论,举报回复 新增接口:删除评论 新增接口:删除回复 新增接口:查询插件列表 新增接口:查询插件详细信息 新增接口:查询插件评价 新增接口:查询插件评星 2022-11-23 第十五次正式发布,本次变更说明如下: 接口查询某个IDE实例更新:响应示例中删掉instance.is_private。 接口启动IDE实例更新:新增请求示例。 接口查询某个租户下的IDE实例列表更新:响应示例参数删除 instances.count、instances.items.is_private。 接口查询IDE实例列表更新:响应示例参数删除 instances.count、instances.items.is_private。 接口查询技术栈模板工程更新:响应参数中新增arch参数。 2022-08-24 第十四次正式发布,本次变更说明如下: 新增接口:查询某个IDE实例的状态。 接口创建IDE实例更新:删除参数instance_user_domain_name、instance_user_name。 接口外部第三方集成商创建IDE实例更新:删除参数instance_user_domain_name、instance_user_name。 2022-07-22 第十三次正式发布,本次变更说明如下: 新增接口:上传插件。 2022-07-01 第十二次正式发布,本次变更说明如下: 接口创建IDE实例更新:新增请求Body参数instance_domain_id和instance_user_id。 参数描述中“组织”修改成“租户”。 2022-03-01 第十一次正式发布,本次变更说明如下: 刷新refresh_interval参数。 2022-01-26 第十次正式发布,本次变更说明如下: 新增接口:按region获取标签所有技术栈。 废弃接口:获取标签所有技术栈。 2022-01-11 第九次正式发布,本次变更说明如下: 修改接口查询某个IDE实例的响应参数。 修改接口查询某个租户下的IDE实例列表的响应参数。 修改接口查询IDE实例列表的响应参数。 更新部分接口的参数描述。 2021-12-20 第八次正式发布,本次变更说明如下: 新增接口:查询用户是否有权限访问某个IDE实例 新增接口:刷新IDE实例活跃状态 新增接口:查询ide实例对插件的授权情况 新增接口:设置ide实例对插件的授权 2021-12-13 第七次正式发布,本次变更说明如下: 新增权限策略和授权项相关内容。 2021-08-24 第六次正式发布,本次变更说明如下: 接口创建IDE实例更新:新增请求Body参数。 更新部分接口参数描述。 2021-01-27 第五次正式发布,本次变更说明如下: 错误码更新:错误响应Body体格式示例更新。 接口启动IDE实例更新:新增请求body参数。 接口创建IDE实例更新:请求Body参数新增port_id、private_ip、vpc_id三个参数。 新增接口:查询当前账号访问权限。 2020-12-29 第四次正式发布,本次变更说明如下: 接口创建IDE实例返回值更新。 接口外部第三方集成商创建IDE实例返回值更新。 2020-11-09 第三次正式发布,本次变更说明如下: 更新终端节点,新增北京一和大连。 2020-09-17 第二次正式发布,本次变更说明如下: 新增应用示例。 2020-07-31 第一次正式发布。 2020-07-07
  • 创建IDE实例 创建指定技术栈及规格的IDE实例。 请求示例 POST https://{endpoint}/v2/instances?instance_label=classroom { "instance_name" : "testjava", "stack_id" : "java", "description" : "", "cpu_memory" : "2U4G", "pvc_quantity" : "5GB", "refresh_time" : 30, "is_temporary" : "false", "instance_user_name" : "test", "instance_user_domain_name" : "test" } 响应示例 { "result" : { "link" : "https://*****/cloudide/loading?instanceId=mpdrao", "arch" : "x86", "id" : "mpdrao" }, "status" : "success" }
  • 查询IDE实例列表 指定limit查询IDE实例列表。 GET: https://{endpoint}/v2/instances?limit=10 { "instances" : { "items_before" : 0, "size" : 10, "total_items_count" : 1, "items" : [ { "is_private" : false, "updated_time" : "2020-03-17 15:21:36", "private" : false, "role" : { "role" : "owner", "id" : "1" }, "owner_id" : "0dc311a468024ad5bf18591c8361272a", "description" : "ddd", "cpu_memory" : "2U4G", "domain_name" : "devcloud_cloudide_name_g01", "role_id" : "1", "is_temporary" : false, "stack_id" : "java", "id" : "instancewrqztsgn12imjq7e", "created_time" : "2020-01-06 15:25:04", "owner_name" : "devcloud_cloudide_pwx501764_g01", "refresh_interval" : 30, "display_name" : "test001", "organization_id" : "6251b1ee539f4c02ad4b83daeda81633", "name" : "cloudide-instance4xceoej8vvpn32lx", "platform_id" : 1, "attributes" : { "cpu_limit" : "2", "pvc_quantity" : "5Gi", "memory_limit_bytes" : "4294967296" }, "pvc_quantity" : "5GB", "arch" : "x86", "region" : "cn-north-7", "actions" : [ { "role_id" : "1", "action_cname" : "创建实例", "id" : "166", "actions" : "CREATE_INSTANCE" }, { "role_id" : "1", "action_cname" : "删除实例", "id" : "167", "actions" : "DELETE_INSTANCE" }, { "role_id" : "1", "action_cname" : "更新实例", "id" : "168", "actions" : "UPDATE_INSTANCE" }, { "role_id" : "1", "action_cname" : "查询实例列表", "id" : "169", "actions" : "QUERY_INSTANCE" }, { "role_id" : "1", "action_cname" : "运行实例", "id" : "170", "actions" : "RUN_INSTANCE" } ], "status" : "STOPPED" } ], "empty" : false }, "status" : "success" } 通过limit和关键字过滤查询实例。 如:查询实例名称或描述中含test的实例列表。 GET: https://{endpoint}/v2/instances?limit=10&search=test
  • 创建IDE实例 检查实例名是否重复。 GET https://{endpoint}/v2/instances/duplicate?display_name=test 接口相关信息请参考查询IDE实例名是否重复。 确定待创建实例的技术栈。 GET https://{endpoint}/v2/stacks/tag 接口相关信息请参考按region获取标签所有技术栈。 查询所有技术栈,根据实际需要选择技术栈及其对应的规格(CPU、存储)。 { "stack" : { "tags" : [ "Java", "Maven", "CPP", "Vue", "ServiceComb", "Blockchain", "GO", "Node.js", "DCN", "Quantum", "JavaScript", "Ruby", "Python" ], "stack_list" : [ { "id" : 1, "stack_id" : "all", "creator" : "ide", "name" : "All in One", "description" : "支持Java、Python、JS/TS等多种语言", "scope" : "general", "config" : { "recipe" : { "content" : "hishell-all-in-one:alpha", "type" : "dockerimage" }, "attributes" : { "specs" : [ "2U4G" ], "volumes" : [ "5GB", "10GB", "20GB" ] } }, "tags" : [ "Java", "Maven", "CPP", "JavaScript", "Vue", "GO", "Node.js", "Ruby", "Python", "ServiceComb" ], "disable" : false, "arm_config" : { "recipe" : { "content" : "hishell-all-in-one:alpha", "type" : "dockerimage" }, "attributes" : { "specs" : [ "4U8G" ], "volumes" : [ "5GB", "10GB", "20GB" ] } } } ] }, "status" : "success" } stack_id:技术栈id。 config.attributes.specs:技术栈x86架构支持的内存。 config.attributes.volumes:技术栈x86架构支持的存储容量。 arm_config.attributes.specs:技术栈arm架构支持的内存。 arm _config.attributes.volumes:技术栈arm架构支持的存储容量。 查询技术栈费用。 可以参考获取技术栈计费信息,为cpu内存和存储容量价格和。 确定技术栈模板工程。 GET https://{endpoint}/v2/templates?stack_id=all 接口相关信息参考查询技术栈模板工程,根据实际需求选择模板工程。 { "templates" : [ { "template_id" : 5, "name" : "web-java-spring", "source" : { "location" : "git@codehub.alpha.devcloud.inhuawei.com:Demo00226/JavaWeb.git", "type" : "git", "parameters" : { } }, "display_name" : "web-java-spring", "path" : "/web-java-spring", "description" : "A basic example using Spring servlets. The app returns values entered into a submit form.", "project_type" : "maven", "region" : "cn-north-7", "tags" : [ "maven", "spring", "java", "web" ], "arch" : "x86,arm" } ], "status" : "success" } 其中,source.location为模板git仓地址。 创建IDE实例。 org_id:组织id(对应华为云账号的domainId)。 POST https://{endpoint}/v2/{org_id}/instances { "display_name" : "test", "stack_id" : "java", "description" : "", "cpu_memory" : "2U4G", "pvc_quantity" : "5GB", "refresh_interval" : 30 } display_name:实例名称。 stack_id:技术栈id。 cpu_memory:内存。 pvc_quantity:存储容量。 refresh_interval:实例生命周期。 响应如下,表示创建成功。 { "result" : { "link" : "https://****/cloudide/loading?instanceId=mpdrao", "arch" : "x86", "id" : "mpdrao" }, "status" : "success" } id:实例id。 link:实例访问地址。 访问接口返回的link地址,可以进入IDE实例。此处没有获取模板工程,如果要下载模板,可以指定模板git地址scmUrl。 https://****/cloudide/loading?scmName=test&scmUrl=git@***/JavaWeb.git&deleteRepoInfo=true&instanceId=mpdrao
  • 调用API获取项目ID 项目ID还可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects/”,其中{Endpoint}为IAM的终端节点,可以从终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 响应示例 状态码: 200 OK { "stack" : { "tags" : [ "Java", "Maven", "CPP", "Vue", "ServiceComb", "Blockchain", "GO", "Node.js", "Quantum", "JavaScript", "Ruby", "Python" ], "stack_list" : [ { "id" : 1, "stack_id" : "all", "creator" : "ide", "name" : "All in One", "description" : "支持Java、Python、JS/TS等多种语言", "scope" : "general", "config" : { "recipe" : { "content" : "hishell-all-in-one:alpha", "type" : "dockerimage" }, "attributes" : { "specs" : [ "2U4G" ], "volumes" : [ "5GB", "10GB", "20GB" ] } }, "tags" : [ "Java", "Maven", "CPP", "JavaScript", "Vue", "GO", "Node.js", "Ruby", "Python", "ServiceComb" ], "disable" : false, "arm_config" : { "recipe" : { "content" : "hishell-all-in-one:alpha", "type" : "dockerimage" }, "attributes" : { "specs" : [ "4U8G" ], "volumes" : [ "5GB", "10GB", "20GB" ] } } } ] }, "status" : "success" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 stack StacksTag object 技术栈 status String 状态 表4 StacksTag 参数 参数类型 描述 stack_list Array of Stacks objects 技术栈列表 tags Array of strings 技术栈tag集合 表5 Stacks 参数 参数类型 描述 arm_config StacksConfig object arm配置 config StacksConfig object x86配置 creator String 创建人 description String 描述 disable Boolean 是否可用 id Long id label String 标签 logo String 图标 name String 技术栈名称 scope String 范围 stack_id String 技术栈ID,通过技术栈管理ListStacks接口获取。 tags Array of strings tags 表6 StacksConfig 参数 参数类型 描述 attributes StacksAttribute object 属性值 recipe Recipe object 镜像 表7 StacksAttribute 参数 参数类型 描述 specs Array of strings 规格列表 suggest String 提示id suggest_title String 提示信息 volumes Array of strings 卷容量列表 表8 Recipe 参数 参数类型 描述 content String 镜像内容 type String 镜像类型 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 406 表11 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
  • 状态码 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-1", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息。