华为云用户手册

  • URI POST /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/action 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 application_id 是 String 应用ID。获取方法,请参考获取所有应用。 component_id 是 String 组件ID。获取方法,请参考获取应用所有组件。 instance_id 是 String 组件实例ID。获取方法,请参考获取应用组件实例。
  • 请求消息 表2 请求参数 参数 是否必选 参数类型 描述 action 是 String 操作,支持start、stop、restart、scale、rollback。 start:启动组件实例。 stop:停止组件实例。 restart:重启组件实例。 scale:伸缩组件实例。 rollback:回滚组件实例到上个版本。 parameters 否 Object 操作参数,action为scale和rollback时必选,请参考表3。 表3 parameters参数说明 参数 是否必选 参数类型 描述 replica 否 Integer 实例数,在scale操作时必选。 hosts 否 Array ECS id列表,指定虚机部署组件伸缩的时候部署的ECS主机,在scale操作时必选。 容器部署组件伸缩时,默认为空。 version 否 String 版本号,在rollback操作时必选,通过获取组件实例快照获取。
  • 响应消息 表3 响应参数 参数 参数类型 描述 count Integer 环境总数。 environments Array of objects 环境参数,请参考表4。 表4 environments参数 参数 参数类型 描述 id String 环境ID name String 环境名称 alias String 环境别名 description String 环境描述 project_id String 项目ID enterprise_project_id String 企业项目ID charge_mode String 收费模式 vpc_id String 虚拟私有云ID base_resources Array of objects 基础资源,请参考表5 optional_resources Array of objects 可选资源,请参考表5 creator String 创建人 create_time Integer 创建时间 update_time Integer 修改时间 表5 resource参数 参数 参数类型 描述 id String 资源ID name String 资源名称 type String 基础资源:cce、cci、ecs、as 可选资源:rds、dcs、elb等其他类型
  • 响应示例 {"environments": [{"id": "00078e9d-a61c-476e-ac63-a10c9cb2638e","name": "development-env","alias": null,"description": "","project_id": "e7d2e9c589e5445e808a8ff0d1235aca","enterprise_project_id": "0","charge_mode": "provided","vpc_id": "29d55020-ae0e-4a18-871c-93e6976ee7bd","base_resources": [{"id": "523498f1-36c4-11eb-ae36-0255ac1000c2","type": "cce","name": "cce-test"}],"optional_resources": [{"id": "9963306a-791e-468c-9306-cf80a9d00298","type": "elb","name": "elb-2dd2"}],"creator": "ss-test","create_time": 1610418873730,"update_time": 1610418873730}],"count": 1}
  • URI GET /v2/{project_id}/cas/environments 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 表2 查询参数 参数 是否必选 参数类型 描述 limit 否 Integer 指定个数,取值[0, 100]或者1000,指定的值不在该范围内的话相当于赋值为10。默认1000,用于不分页的场景。分页的场景取值请用[0, 100]。 offset 否 Integer 指定偏移量,表示查询第n条数据后的结果。 order_by 否 String 排序字段,默认按创建时间排序。 排序字段支持枚举值:create_time、name、update_time。传的值不在支持的枚举值范围内的话按默认排序字段排序。 order 否 String desc/asc,默认desc。
  • URI GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 application_id 是 String 应用ID。获取方法,请参考获取所有应用。 component_id 是 String 组件ID。获取方法,请参考获取应用所有组件。 instance_id 是 String 组件实例ID。获取方法,请参考获取应用组件实例。
  • 响应示例 {"id": "11eddb33-140b-4e51-b1e2-6ec265373ca3","name": "test-micro-test-env-7iafjk","environment_id": "61b81021-21d5-42f3-b80e-0b6bd10dbf7d","platform_type": "cce","flavor_id": "CUSTOM-10G:250m-250m:0.5Gi-0.5Gi","artifacts": {"test-micro": {"storage": "swr","type": "image","url": "swr.region_id.development.com/ns/examples:v2","auth": "iam","version": "1.0.0","properties": {}}},"version": "1.0.2","description": "","configuration": {"env": [{"name": "PAAS_PROJECT_ID","value": "e7d2e9c589e5445e808a8ff0d1235aca","internal": true}],"lifecycle": {"post-start": null,"pre-stop": null},"scheduler": {"affinity": {"az": [],"node": [],"application": []},"anti-affinity": {"az": [],"node": [],"application": []},"isSynchronized": true},"strategy": {"upgrade": "RollingUpdate","spec": {"maxSurge": 0,"maxUnavailable": 1}}},"creator": null,"create_time": 1610331819996,"update_time": 1610522676792,"external_accesses": null,"refer_resources": [{"id": "523498f1-36c4-11eb-ae36-0255ac1000c2","type": "cce","parameters": {"namespace": "default"}},{"id": "default","type": "cse"}],"status_detail": {"status": "RUNNING","replica": 1,"available_replica": 1,"fail_detail": null,"last_job_id": "JOB16c33466-41e6-4c5b-a9ac-2059253a1e5c","last_job_status": "SUCCEEDED","enterprise_project_id": "0"}}
  • 响应示例 {"instances": [{"id": "11eddb33-140b-4e51-b1e2-6ec265373ca3","application_id": "4d92833a-fa05-4fc0-a761-e67620022310","application_name": "test-app","component_id": "1cfdda6f-84cd-4ead-8e09-628fabf662e2","component_name": "test-com","name": "test-micro-test-env-7iafjk","environment_id": "61b81021-21d5-42f3-b80e-0b6bd10dbf7d","environment_name": "test-env","platform_type": "cce","version": "1.0.0","artifacts": {"test-micro": {"storage": "obs","type": "package", "url": "obs://myapp/demo.jar", "properties": { "bucket": "myapp", "key": "demo.jar", "endpoint": "https://obs.region_id.external_domain_name.com" },"auth": "iam","version": "1.0.0",}},"create_time": 1610331819996,"update_time": 1610331830398,"creator": "liuwei","status_detail": {"status": "RUNNING","replica": 1,"available_replica": 1,"fail_detail": null,"last_job_id": "JOB7bc0366c-dc43-41f9-b65f-8d6078038488","last_job_status": "SUCCEEDED","enterprise_project_id": "0"}}],"count": 1}
  • URI GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 application_id 是 String 应用ID。获取方法,请参考获取所有应用。 component_id 是 String 组件ID。获取方法,请参考获取应用所有组件。 表2 查询参数 参数 是否必选 参数类型 描述 limit 否 Integer 指定个数,取值[0, 100]或者1000,指定的值不在该范围内的话相当于赋值为10。默认1000,用于不分页的场景。分页的场景取值请用[0, 100]。 offset 否 Integer 指定偏移量。 order_by 否 String 排序字段,默认按创建时间排序。 排序字段支持枚举值:create_time、name、version、update_time。 order 否 String desc/asc,默认desc。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 在构造请求中以调用获取用户Token接口为例说明了如何调用API。 调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ....
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用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 DELETE /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 application_id 是 String 应用ID。获取方法,请参考获取所有应用。 component_id 是 String 组件ID。获取方法,请参考获取应用所有组件。 instance_id 是 String 组件实例ID。获取方法,请参考获取应用组件实例。 表2 查询参数 参数 是否必选 参数类型 描述 force 否 boolean 是否强制删除。
  • 调用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": "region_id", "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" } }
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则Content-type中需声明字符编码方式为utf-8,例如,Content-Type: application/json;utf-8。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,可以从地区和终端节点处获取。 scope参数定义了Token的作用域,上面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl命令行、postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint:指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点处获取。例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path:资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP方法,它告诉服务您正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 X-Project-ID:子项目ID,可选,在多项目场景中使用。 X-Domain-ID:帐号ID。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • URI GET /v2/{project_id}/cas/jobs/{job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 job_id 是 String 部署任务ID,为创建组件实例接口响应参数的job_id。 表2 查询参数 参数 是否必选 参数类型 描述 instance_id 否 String 应用组件实例ID。获取方法,请参考获取应用组件实例。 limit 否 Integer 指定个数。 offset 否 Integer 指定偏移量。 desc 否 String 是否降序: true=desc,false=asc。
  • 响应示例 { "job": { "JOB_ID": "JOB474362ef-091d-429f-9b3e-c9246b37dee6", "JOB_NAME": "provision/provMain", "JOB_TYPE": "PROVISION", "SERVICE_INSTANCE_ID": "429a35a0-dee8-4648-86f6-d1f8bc74ba52", "PROJECT_ID": "063a3158b1a34710b36ad208b9497d00", "ORDER_ID": "", "JOB_DESC": "provision/provMain", "EXECUTION_STATUS": "FAILED", "CREATED_BY": "585cc5c16cda4954b28d4eb460f06261" }, "tasks": [ { "MESSAGES": "{}", "TASK_ID": "Task-bc64b46c-1688-4787-b7ff-87cb53b346ea", "TASK_TYPE": "echo", "TASK_INDEX": 1, "TASK_NAME": "SEPARATOR_PREPARE_RESOURCES", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:03.344Z", "CREATED_AT": "2020-02-04T04:01:03.344Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-15ec252f-bca0-401e-ae5b-798a639df92e", "TASK_TYPE": "echo", "TASK_INDEX": 4, "TASK_NAME": "SEPARATOR_BUILDING", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:03.346Z", "CREATED_AT": "2020-02-04T04:01:03.345Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-52a5d1ae-2c54-46ec-8134-53e7b6a45fb7", "TASK_TYPE": "restful", "TASK_INDEX": 6, "TASK_NAME": "TN00091", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:08.924Z", "CREATED_AT": "2020-02-04T04:01:03.346Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-a149b585-d31b-4c72-a665-d820efcb0bf9", "TASK_TYPE": "restful", "TASK_INDEX": 7, "TASK_NAME": "TN00094", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:08.961Z", "CREATED_AT": "2020-02-04T04:01:08.925Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{ \"Message\" : \"ECC00011\", \"Detail\" : \"Building failed.\"}", "TASK_ID": "Task-a72fe8d8-8cc1-42b5-a097-0cf9e29692a7", "TASK_TYPE": "restful", "TASK_INDEX": 9, "TASK_NAME": "TN00097", "TASK_STATUS": "FAILED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:38.975Z", "CREATED_AT": "2020-02-04T04:01:08.962Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" } ], "task_count": 5}
  • 操作步骤 在某个应用下创建组件。调用应用中创建组件接口,请求示例如下。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components" -d '{ "name": "component-a", "runtime": "Tomcat8", "category": "Common", "description": "component_desc", "source": { "kind": "artifact", "spec": { "storage": "swr", "type": "package", "url": "https://{IP}:20202/xxx/xxx.jar", "auth": "iam" } }}' 返回结果: { "id": "string", "name": "component-a", "runtime": "Tomcat8", "category": "Common", "description": "component_desc", "project_id": "string", "application_id": "string", "source": { "kind": "artifact", "spec": { "storage": "swr", "type": "package", "url": "https://{IP}:20202/xxx/xxx.jar", "auth": "iam" } }, "build": null, "create_time": 0, "update_time": 0} 得到的id,后续示例中以{component_id}代替。 “runtime”字段支持的值包括:Tomcat8、Java8、Php7、Nodejs8、Docker、Python3。 创建组件实例。调用创建组件实例接口。请求示例如下。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances" -d '{ "name": "component-instance-name", "environment_id": "6e763000-9128-4a9d-adea-34c42cc5344d", "flavor_id": "MICRO-5G:0.5C:1G", "replica": 1, "artifacts": { "container-name": { "storage": "swr", "type": "image", "url": "{IP}:20202/xxxxxxxx/junit-platformstest:1.0", "auth": "iam" } }, "version": "1.0.0", "description": "instance desc", "configuration": { "env": [ { "name": "log-level", "value": "warn" } ] }, "refer_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce", "parameters": { "namespace": "default" } }, { "id": "8c0a45cc-626f-4d65-8257-507ee059aa9a", "type": "elb" } ]}' 返回结果: { "instance_id": "89f5baf5-efe4-4f12-9c0d-734d2af5a184", "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"} 得到的job_id,后续示例中以{job_id}代替。得到的instance_id,后续示例中以{instance_id}代替。 查询创建组件实例任务状态。调用获取部署任务详细信息接口,去查询任务状态是否成功。请求示例如下。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/jobs/{job_id}" 返回结果: { "job": { "JOB_ID": "JOB474362ef-091d-429f-9b3e-c9246b37dee6", "JOB_NAME": "provision/provMain", "JOB_TYPE": "PROVISION", "SERVICE_INSTANCE_ID": "429a35a0-dee8-4648-86f6-d1f8bc74ba52", "PROJECT_ID": "063a3158b1a34710b36ad208b9497d00", "ORDER_ID": "", "JOB_DESC": "provision/provMain", "EXECUTION_STATUS": "SUCCEEDED", "CREATED_BY": "585cc5c16cda4954b28d4eb460f06261" }, "tasks": [ { "MESSAGES": "{}", "TASK_ID": "Task-bc64b46c-1688-4787-b7ff-87cb53b346ea", "TASK_TYPE": "echo", "TASK_INDEX": 1, "TASK_NAME": "SEPARATOR_PREPARE_RESOURCES", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:03.344Z", "CREATED_AT": "2020-02-04T04:01:03.344Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-15ec252f-bca0-401e-ae5b-798a639df92e", "TASK_TYPE": "echo", "TASK_INDEX": 4, "TASK_NAME": "SEPARATOR_BUILDING", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:03.346Z", "CREATED_AT": "2020-02-04T04:01:03.345Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-52a5d1ae-2c54-46ec-8134-53e7b6a45fb7", "TASK_TYPE": "restful", "TASK_INDEX": 6, "TASK_NAME": "TN00091", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:08.924Z", "CREATED_AT": "2020-02-04T04:01:03.346Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "{}", "TASK_ID": "Task-a149b585-d31b-4c72-a665-d820efcb0bf9", "TASK_TYPE": "restful", "TASK_INDEX": 7, "TASK_NAME": "TN00094", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:08.961Z", "CREATED_AT": "2020-02-04T04:01:08.925Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" }, { "MESSAGES": "", "TASK_ID": "Task-a72fe8d8-8cc1-42b5-a097-0cf9e29692a7", "TASK_TYPE": "restful", "TASK_INDEX": 9, "TASK_NAME": "TN00097", "TASK_STATUS": "SUCCEEDED", "LAST_HEALTH_CHECK": "2020-02-04T04:01:38.975Z", "CREATED_AT": "2020-02-04T04:01:08.962Z", "OWNER_ID": "cas-mgr-69bb87d7c-wpqwb:30114" } ], "task_count": 5} 升级组件实例。调用修改应用组件实例接口。请求示例如下。然后还是调用步骤3的接口,用返回的job_id查询任务状态,等待升级完成。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}" -d '{ "name": "component-instance-name", "environment_id": "6e763000-9128-4a9d-adea-34c42cc5344d", "flavor_id": "MICRO-5G:0.5C:1G", "replica": 2, "version": 2}' 返回结果: { "instance_id": "89f5baf5-efe4-4f12-9c0d-734d2af5a184", "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dd"} 获取组件实例快照。调用获取组件实例快照接口。请求示例如下。该步骤是回退的前置步骤,用于查询可以回退的版本。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/snapshots" 返回结果: { "snapshots": [{ "create_time": 1571647078435, "description": "xxx", "instance_id": "89f5baf5-efe4-4f12-9c0d-734d2af5a184", "version": "1" }, "count": 1]} 回滚组件实例。调用对组件实例的操作接口。请求示例如下。然后用返回的job_id调用步骤3等待任务完成。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/action" -d '{ "action": "rollback", "parameters": { "version": "1" }}' 返回结果: { "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"} 对组件实例进行其他生命周期的操作,如停止,启动,重启等。调用对组件实例的操作接口。这里以停止组件实例为例子,请求示例如下。然后用返回的job_id调用步骤3等待任务完成。 curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/action" -d '{ "action": "stop"}' 返回结果: { "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"}
  • 响应示例 { "flavors": [ { "flavor_id": "MICRO-5G:0.5C:1G", "storage_size": "5G", "num_cpu": "500m", "num_cpu_init": "200m", "memory_size": "1Gi", "memory_size_init": "200Mi", "label": "Micro: 5G Storage, 0.5 CPU, 1G Memory", "custom": false } ]}
  • 响应消息 表2 响应参数 参数 类型 描述 flavors Array of objects 规格参数,请参考表3。 表3 flavors参数说明 参数 类型 描述 flavor_id String 规格ID storage_size String 存储大小 num_cpu String CPU限制 num_cpu_init String CPU初始 memory_size String 内存限制 memory_size_init String 内存初始 label String 展示标签 custom boolean 是否是自定义资源规格
  • 响应示例 { "runtimes": [ { "type_name": "Java8", "display_name": "Java 8", "container_default_port": 8080, "type_desc": "Java 8 runtime server" } ]}
  • URI DELETE /v1/{project_id}/git/files/{namespace}/{project}/{path} 参数说明见表1。 表1 路径参数 参数 是否必选 类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 namespace 是 String 命名空间ID或者URL编码名称。获取方法,请参考获取仓库namespaces。 project 是 String 仓库项目ID或者URL编码名称,如果含有“/”,需要将“/”替换为“:”。获取方法,请参考获取命名空间下所有项目。 path 是 String 文件路径,需要将“/”替换为“:”。获取方法,请参考获取仓库文件目录。 表2 查询参数 参数 是否必选 类型 描述 ref 是 String 分支名称或者tag名称或者commit哈希。 message 是 String commit信息。 sha 是 String 文件的Blob SHA。获取方法,请参考获取仓库文件内容。
  • URI GET /v1/{project_id}/git/files/{namespace}/{project}/{path} 参数说明见表1。 表1 路径参数 参数 是否必选 类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 namespace 是 String 命名空间ID或者URL编码名称。获取方法,请参考获取仓库namespaces。 project 是 String 仓库项目ID或者URL编码名称,如果含有“/”,需要将“/”替换为“:”。获取方法,请参考获取命名空间下所有项目。 path 是 String 文件路径,需要将“/”替换为“:”。获取方法,请参考获取仓库文件目录。 表2 查询参数 参数 是否必选 类型 描述 ref 是 String 分支名称或者tag名称或者commit sha。
  • URI PUT /v1/{project_id}/git/files/{namespace}/{project}/{path} 参数说明见表1。 表1 路径参数 参数 是否必选 类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 namespace 是 String 命名空间ID或者URL编码名称。获取方法,请参考获取仓库namespaces。 project 是 String 仓库项目ID或者URL编码名称,如果含有“/”,需要将“/”替换为“:”。获取方法,请参考获取命名空间下所有项目。 path 是 String 文件路径,需要将“/”替换为“:”。获取方法,请参考获取仓库文件目录。 表2 查询参数 参数 是否必选 类型 描述 ref 是 String 分支名称或者tag名称或者commit哈希。
  • URI POST /v1/{project_id}/git/files/{namespace}/{project}/{path} 参数说明见表1。 表1 路径参数 参数 是否必选 类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 namespace 是 String 命名空间ID或者URL编码名称。获取方法,请参考获取仓库namespaces。 project 是 String 仓库项目ID或者URL编码名称,如果含有“/”,需要将“/”替换为“:”。获取方法,请参考获取命名空间下所有项目。 path 是 String 文件路径,需要将“/”替换为“:”。获取方法,请参考获取仓库文件目录。 表2 查询参数 参数 是否必选 类型 描述 ref 是 String 分支名称或者tag名称或者commit哈希。
  • WatchMicroServiceKey 表1 参数说明 参数 是否必选 类型 描述 appId 否 String 应用app唯一标识。 字符长度为1~160。 正则表达式为^[a-zA-Z0-9]*$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]*[a-zA-Z0-9]$ serviceName 否 String 微服务名称。 作为provider支持为*,表示依赖同一租户下的所有服务。当服务名称为*时,appId和version可以省略。 consumer不支持*。 version 否 String 微服务版本。 作为provider支持+、固定版本和latest(当前最新版本),如1.0.1+,表示1.0.1以上的版本,包括1.0.1。 作为consumer只能为固定版本。 父主题: 公共响应参数
  • 500M免费额度怎么算? 云日志服务的计费功能包括:1、日志读写和索引;2、日志存储。每月各赠送500M免费额度,具体说明如下: 日志读写、索引:按流量计费,每月免费赠送您500M额度,超过后按需收费。 日志存储:按存储空间计费,每月赠送您500M额度,超过后按需收费。 收费详情请参见:LTS产品价格详情。 如果每月免费赠送的额度已经可以满足您的使用需求,超过后希望暂停日志采集,请参见:如何停止日志采集(停止计费)。 父主题: 计费
  • 日志如何计费,日志索引流量是什么? 日志包含3个计费量纲:日志读写流量、日志索引流量和日志存储空间,LTS每月各赠送500M免费额度,具体单价请参考官网日志计费说明。 日志读写流量:读写流量根据传输的流量计算,传输流量为压缩后的日志大小,日志一般有5倍压缩率。 示例:原始日志为10GB,实际压缩大小为 2GB,则以2GB 计费。 日志索引流量:原始日志数据默认都会建立全文索引,创建索引(对日志分词处理)后,才能搜索日志,在写入时一次性收取流量费用。 示例:原始日志为10GB,需要索引的流量为10GB,产生索引流量费用3.2元。 日志存储空间:日志存储空间为压缩后的日志数据、索引数据、副本数据之和,这些空间约等于原始日志数据大小。 示例:原始日志为10GB,那么一天存储最大收费为 0.000479*24*10=0.12元(金额如果遇小数点,则保留小数点后两位,第三位四舍五入。如遇四舍五入后不足¥0.01 元,则按¥0.01 元展示)。 父主题: 计费
共100000条