云服务器内容精选

  • 操作步骤 调用应用中创建组件API在某个应用下创建组件,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$token" -X POST "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}/components" -d ' { "name": "test-component", "description": "", "labels": [], "version": "2023.0712.09204", "environment_id": "21a43958-f64f-4077-8ae3-3a03bf0111c7", "application_id": "2c458700-c8e0-4651-a73b-5219b70a6572", "enterprise_project_id": "0", "runtime_stack": { "name": "Docker", "version": "", "type": "Docker", "deploy_mode": "container" }, "source": { "kind": "image", "storage": "swr", "url": "swr.cn-north-4.myhuaweicloud.com/servicestage-demo/test_02:v1", "version": "v1" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "1d3091a2-1ecf-11ee-ae69-0255ac1001ba", "type": "cce", "parameters": { "namespace": "default", "type": "VirtualMachine" } } ], "replica": 2, "config_mode": "ui", "limit_cpu": 0.25, "limit_memory": 0.5, "request_cpu": 0.25, "request_memory": 0.5, "external_accesses": [], "storages": [], "logs": [], "affinity": { "az": [], "node": [], "component": [] }, "anti_affinity": { "az": [], "node": [], "component": [] }, "update_strategy": { "type": "RollingUpdate", "max_surge": 0, "max_unavailable": 1 }, "command": { "args": [], "command": [] }, "custom_metric": {} }' 返回结果: { "job_id": "JOB870e9ffe-227e-43a9-9c84-20a7ad02e77c", "component_id": "f3f6cb89-831d-4579-8bbc-664487889e38" } 记录返回结果中加粗显示的job_id、component_id的值,用于替换后续示例中的{job_id}、{component_id}。 调用获取部署任务详细信息API查询创建组件任务是否成功,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v3/{project_id}/cas/jobs/{job_id}" 返回结果: { "job": { "JOB_ID": "JOB870e9ffe-227e-43a9-9c84-20a7ad02e77c", "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_RESOUR CES ", "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 } 调用根据组件ID修改组件信息API升级组件,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$token" -X PUT "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}/components/{component_id}" -d ' { "source": { "kind": "image", "storage": "swr", "url": "swr.cn-north-4.myhuaweicloud.com/demo/arm_tomcat8:v1" }, "version": "2023.0717.17160", "refer_resources": [ { "id": "1d3091a2-1ecf-11ee-ae69-0255ac1001ba", "type": "cce", "parameters": { "namespace": "default", "type": "ARM64" } } ], "limit_cpu": 0.25, "limit_memory": 0.5, "request_cpu": 0.25, "request_memory": 0.5, "mesher": {}, "affinity": {}, "anti_affinity": {}, "liveness_probe": {}, "readiness_probe": {}, "command": { "command": [], "args": [] }, "envs": [ { "name": "PAAS_PROJECT_ID", "inner": false, "value": "063a3158b1a34710b36ad208b9497d00" }, { "name": "CAS_APP_ID", "inner": false, "value": "f3f6cb89-831d-4579-8bbc-664487889e38" }, { "name": "PAAS_CLUSTER_ID", "inner": false, "value": "1d3091a2-1ecf-11ee-ae69-0255ac1001ba" }, { "name": "CAS_APPLICATION_ID", "inner": false, "value": "2c458700-c8e0-4651-a73b-5219b70a6572" }, { "name": "CAS_INSTANCE_VERSION", "inner": false, "value": "2023.0717.17062" }, { "name": "CAS_COMPONENT_ID", "inner": false, "value": "e1c3021b-df40-48e9-bd41-ef033fc77f2b" }, { "name": "CAS_INSTANCE_NAME", "inner": false, "value": "etst1-test-arm-5xdhrd" }, { "name": "CAS_COMPONENT_NAME", "inner": false, "value": "etst1" }, { "name": "PAAS_NAMESPACE", "inner": false, "value": "default" }, { "name": "PAAS_APP_NAME", "inner": false, "value": "etst1" }, { "name": "PAAS_PROJECT_NAME", "inner": false, "value": "cn-north-7" }, { "name": "CAS_INSTANCE_ID", "inner": false, "value": "f3f6cb89-831d-4579-8bbc-664487889e38" }, { "name": "CAS_ENVIRONMENT_NAME", "inner": false, "value": "test_arm" }, { "name": " AOM _DISCOVERY_RULE_VERSION", "inner": false, "value": "V1" }, { "name": "CAS_ENVIRONMENT_ID", "inner": false, "value": "21a43958-f64f-4077-8ae3-3a03bf0111c7" }, { "name": "testName", "inner": false, "value": "testValue" }, { "name": "PAAS_REGION_NAME", "inner": false, "value": "cn-north-7" }, { "name": "CAS_APPLICATION_NAME", "inner": false, "value": "app-test-application" } ], "deploy_strategy": { "type": "RollingRelease", "rolling_release": { "batches": "1" } }, "id": "f3f6cb89-831d-4579-8bbc-664487889e38", "name": "etst1" }' 返回结果: { "job_id": "JOB2209202b-617c-4591-b0c6-ef2521a943a2" } 记录返回结果中加粗显示的job_id的值,用于替换后续示例中的{job_id}。 调用2的接口,用3返回的job_id查询任务状态,等待任务完成。 调用根据组件ID下发组件任务API回滚组件,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$token" -X POST "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}/components/{component_id}/action" -d ' { "action": "rollback_current" }' 返回结果: { "job_id": "JOB66eb56db-062e-4462-ba95-8d3c63d5d462" } 记录返回结果中加粗显示的job_id的值,用于替换后续示例中的{job_id}。 调用2的接口,用5返回的job_id查询任务状态,等待任务完成。 调用根据组件ID下发组件任务API停止组件实例,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$token" -X POST "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}/components/{component_id}/action" -d ' { "action": "stop" }' 返回结果: { "job_id": "JOB2790bf9f-7d6e-473d-827f-1bb94e0cf10d" } 记录返回结果中加粗显示的job_id的值,用于替换后续示例中的{job_id}。 调用2的接口,用7返回的job_id查询任务状态,等待任务完成。
  • 操作步骤 调用创建应用API创建应用,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v3/{project_id}/cas/applications" -d ' { "name": "app-test-application", "description": "test application", "enterprise_project_id": "0", "labels": [ { "key": "testKey", "value": "testValue" } ] }' 返回结果: { "id": "2c458700-c8e0-4651-a73b-5219b70a6572", "name": "app-test-application", "description": "test application", "project_id": "063a3158b1a34710b36ad208b9497d00", "enterprise_project_id": "0", "creator": "test_user", "create_time": 1689575641705, "update_time": 1689575641705, "unified_model": null, "labels": [ { "key": "testKey", "value": "testValue" } ] } 记录返回结果中加粗显示的应用ID,用于替换后续示例中的{application_id}。 调用根据应用ID修改应用配置API为应用添加应用环境变量,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}/configuration" -d ' { "environment_id": "21a43958-f64f-4077-8ae3-3a03bf0111c7", "configuration": { "env": [ { "name": "testName", "value": "testValue" } ] } }' 返回结果: { "application_id": "2c458700-c8e0-4651-a73b-5219b70a6572", "environment_id": "21a43958-f64f-4077-8ae3-3a03bf0111c7", "configuration": { "env": [ { "name": "testName", "value": "testValue" } ] } } 调用根据应用ID获取应用详细信息API根据应用ID查询应用详细信息,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$token" -X GET "https://{servicestage_endpoint}/v3/{project_id}/cas/applications/{application_id}" 返回结果: { "id": "2c458700-c8e0-4651-a73b-5219b70a6572", "name": "app-test-application", "description": "test application", "project_id": "063a3158b1a34710b36ad208b9497d00", "enterprise_project_id": "0", "creator": "test_user", "create_time": 1689575641705, "update_time": 1689575641705, "unified_model": null, "labels": [ { "key": "testKey", "value": "testValue" } ], "component_count": 0 }
  • 操作步骤 调用创建环境API创建环境,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v3/{project_id}/cas/environments" -d ' { "name": "env-Kubernetes", "description": "test environment", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "081c539d-ed09-43b0-81d7-a87603e528b7", "labels": [ { "key": "testKey", "value": "testValue" } ], "deploy_mode": "container" }' 返回结果: { "id": "9cd33350-5d7f-46ec-ba6d-40ed793f0eb7", "name": "env-Kubernetes", "description": "test environment", "creator": "test_user", "enterprise_project_id": "0", "vpc_id": "081c539d-ed09-43b0-81d7-a87603e528b7", "deploy_mode": "container", "vm_cluster_size": 50, "labels": [ { "key": "testKey", "value": "testValue" } ], "create_time": 1689564968283, "update_time": 1689564968283, "resources": [] } 记录返回结果中加粗显示的环境ID,用于替换后续示例中的{environment_id}。 调用根据环境ID修改环境资源API为环境添加资源。 根据您已有的资源和需求,可以将和环境相同VPC下的计算、网络、中间件等多种类型的资源添加到环境中。请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v3/{project_id}/cas/environments/{environment_id}/resources" -d ' { "resources": [ { "id": "d2917177-3436-4e53-a5bc-706c3529e0e7", "name": "elb-pu6a", "type": "elb" } ] }' 返回结果: { "resources": [ { "id": "d2917177-3436-4e53-a5bc-706c3529e0e7", "type": "elb", "name": "elb-pu6a" } ] } 调用根据环境ID获取环境详细信息API根据环境ID查询环境详细信息,请求示例如下: curl -k -H "Content-Type:application/json;charset=utf8" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v3/{project_id}/cas/environments/{environment_id}" 返回结果: { "id": "9cd33350-5d7f-46ec-ba6d-40ed793f0eb7", "name": "env-Kubernetes", "description": "test environment", "creator": "test_user", "enterprise_project_id": "0", "vpc_id": "081c539d-ed09-43b0-81d7-a87603e528b7", "deploy_mode": "container", "vm_cluster_size": 50, "labels": [ { "key": "testKey", "value": "testValue" } ], "create_time": 1689564968283, "update_time": 1689574181240, "resources": [ { "id": "d2917177-3436-4e53-a5bc-706c3529e0e7", "type": "elb", "name": "elb-pu6a" } ] }
  • 操作场景 环境是用于组件部署和运行的计算(如云容器引擎 CCE、弹性云服务器 E CS 等)、网络(如弹性负载均衡 ELB、弹性IP EIP等)和中间件(如分布式缓存 DCS、云数据库 RDS等)等基础资源的集合。ServiceStage把多种基础资源组合为一个环境,如:开发环境、测试环境、预生产环境和生产环境。按环境维度来管理资源、部署组件,可以减少具体基础资源运维管理的复杂性。 下面介绍如何调用创建环境API创建环境,再调用根据环境ID修改环境资源API为环境添加其他需要的资源,最后调用根据环境ID获取环境详细信息API根据环境ID查询环境详细信息。 API的调用方法请参见如何调用API。
  • 访问Git仓库接口 表10 访问Git仓库接口 API 说明 获取仓库授权列表 此API用来获取Git仓库所有授权信息。 获取授权重定向URL 此API用来获取授权重定向URL。 创建OAuth授权 此API用来创建OAuth授权。 创建私人令牌授权 此API用来创建私有令牌授权。 创建口令授权 此API用来创建Git仓库口令授权。 删除仓库授权 此API用来通过名称删除仓库授权。 获取仓库namespaces 此API用来获取仓库namespaces。 通过clone url获取仓库信息 此API用来通过clone url获取仓库信息。 获取命名空间下所有项目 此API用来获取命名空间下所有项目。 创建软件仓库项目 此API用来创建软件仓库项目。 获取项目分支 此API用来获取项目分支。 获取项目tags 此API用来获取项目tags。 创建项目tags 此API用来创建项目tags。 删除项目tags 此API用来删除项目tags。 获取项目commits 此API用来获取项目最近10次commits。 获取项目hooks 此API用来获取项目hooks。 创建项目hook 此API用来创建项目hook。 删除项目hook 此API用来删除项目hook。 获取仓库文件目录 此API用来获取仓库文件目录。 获取仓库文件内容 此API用来获取仓库文件内容。 创建仓库文件 此API用来创建仓库文件。 修改仓库文件内容 此API用来修改仓库文件内容。 删除仓库文件 此API用来删除仓库文件内容。
  • 引擎管理 表12 引擎管理接口 API 说明 查询微服务引擎专享版支持规格 此API用来查询微服务引擎专享版支持的规格。 查询微服务引擎专享版列表 此API用来查询微服务引擎专享版列表。 创建微服务引擎专享版 此API用来创建微服务引擎专享版。 查询微服务引擎专享版详情 此API用来查询微服务引擎专享版详情。 删除微服务引擎专享版 此API用来删除微服务引擎专享版。 查询微服务引擎专享版任务详情 此API用来查询微服务引擎专享版任务详情。
  • 微服务实例 表16 微服务实例接口 API 说明 注册微服务实例 此API用来在创建微服务后注册该微服务的实例。 注册微服务实例时,需提供该微服务实例相关的信息。 instanceId可定制,如果定制了,再次注册就直接全内容覆盖。如果没定制,逻辑如下:系统自动生成id,如果endpoints内容重复,则使用原来的id。 根据service_id查询微服务实例 此API用来在实例注册后根据service_id发现该微服务的所有实例。 注销微服务实例 此API用来在实例注册后根据instance_id进行实例注销。 查询微服务实例详细信息 此API用来在实例注册后根据service_id和instance_id获取该实例的详细信息。 修改微服务实例扩展信息 此API用来在实例注册后根据instance_id添加/更新一个微服务实例的扩展信息。 修改微服务实例状态 此API用来在实例注册后根据instance_id更新一个微服务实例的状态。 发送心跳信息 此API用来在服务提供端向服务中心发送心跳信息,以保证服务中心知道服务实例是否健康。 按条件查询微服务实例 此API用来在实例注册后根据微服务版本规则或字段条件发现该微服务的实例。 批量查询微服务实例 此API用来在实例注册后根据微服务版本规则或字段条件批量发现多个微服务的实例。
  • 微服务 表14 微服务接口 API 说明 查询指定微服务信息 此API用来根据serviceId查询微服务定义信息。 删除微服务定义信息 此API用来删除一个微服务定义及其相关信息,同时注销其所有实例信息。 查询所有微服务信息 此API用来根据条件组合,查询满足所有条件的微服务定义信息。 创建微服务静态信息 此API用来在注册微服务实例前创建服务静态信息,之后注册的微服务实例根据serviceId这个字段与静态信息关联,一个服务对应对多个实例。serviceId可以定制。如果定制了,系统将使用定制的serviceId;如果没定制,系统会随机生成serviceId。 批量删除微服务静态信息 此API用来批量删除指定的微服务定义及其相关信息,同时注销其所有实例信息。 修改微服扩展属性信息 此API用来创建微服务静态信息后对服务部分字段进行更新。每次更新都需要传入完整的服务静态信息json,也就是说,即便不更新部分的字段也要作为json的属性传过去。 查询微服务唯一标识信息 此API用来通过指定条件,查询微服务serviceId或schema的唯一标识信息。
  • 应用接口 表3 应用接口 API 说明 创建应用 此API用来创建应用。 获取所有应用 此API用来获取所有应用。 根据应用ID修改应用信息 此API用来通过应用ID修改应用信息。 根据应用ID删除应用 此API用来通过应用ID删除应用。 根据应用ID获取应用详细信息 此API用来通过应用ID获取应用详细信息。 根据应用ID获取应用配置 此API用来通过应用ID获取应用配置信息。 根据应用ID修改应用配置 此API用来通过应用ID修改应用配置。 根据应用ID删除应用配置 此API用来通过应用ID删除应用配置。
  • 组件接口 表4 组件接口 API 说明 应用中创建组件 此API用来在应用中创建组件。 获取应用所有组件 此API用来获取应用下所有组件。 获取所有组件 此API用来获取所有应用组件。 根据组件ID修改组件信息 此API用来通过组件ID修改组件信息。 根据组件ID删除组件 此API用来通过组件ID删除组件。 根据组件ID获取组件信息 此API用来通过组件ID获取组件信息。 根据组件ID下发组件任务 此API用来通过组件ID下发组件任务。 根据组件ID获取记录 此API用来通过组件ID获取记录。
  • 泳道组接口 表5 泳道组接口 API 说明 创建泳道组 此API用来在创建泳道组。 泳道组是一组泳道的集合,用于区分不同的组织或场景。同一个项目下,最多支持创建300个泳道组。 获取所有泳道组 此API用来获取所有已经创建的泳道组。 根据泳道组ID获取泳道组信息 此API用来根据泳道组ID获取泳道组信息。 根据泳道组ID修改泳道组 此API用来根据泳道组ID修改泳道组。 根据泳道组ID删除泳道组 此API用来根据泳道组ID删除泳道组。 根据网关ID获取目标服务列表 此API用来根据网关ID获取目标服务列表。 根据泳道组ID修改泳道组网关路由配置 此API用来根据泳道组ID修改泳道组网关路由配置。
  • 泳道接口 表6 泳道接口 API 说明 泳道组下创建泳道 此API用来在泳道组下创建泳道。 根据微服务引擎ID获取所有泳道 此API用来根据微服务引擎ID获取所有泳道。 获取泳道组下所有泳道 此API用来获取泳道组下所有泳道。 根据泳道ID获取泳道信息 此API用来根据泳道ID获取泳道信息。 根据泳道ID修改泳道信息 此API用来根据泳道ID修改泳道信息。 根据泳道ID删除泳道 此API用来根据泳道ID删除泳道。 根据泳道ID控制泳道路由开关 此API用来根据泳道ID控制泳道路由开关。 根据泳道ID关联组件 此API用来根据泳道ID为泳道关联组件。
  • 环境接口 表2 环境接口 API 说明 创建环境 此API用来创建环境。 获取所有环境 此API用来获取所有环境。 根据环境ID删除环境 此API用来通过环境ID删除环境。 根据环境ID修改环境 此API用来通过环境ID修改环境。 根据环境ID获取环境详细信息 此API用来通过环境ID获取环境详细信息。 根据环境ID修改环境资源 此API用来通过环境ID修改环境资源。 根据环境ID查询环境资源 此API用来根据环境ID查询环境资源。
  • URI DELETE /v3/{project_id}/cas/environments/{environment_id}/addons/{addon_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 environment_id 是 String 环境ID。获取方法,请参考获取所有环境。 addon_id 是 String 插件ID。获取方法,请参考查询插件列表。
  • 响应示例 [ { "id": "8177d237-b912-4167-a90d-33c603610d0b", "host": "provider..demo-java-chassis-cse-v2.servicecomb", "name": "provider", "service_source_name": "cscs", "engine_id": "d68a5ca7-b5b6-4917-a464-0adef94b8067", "engine_type": "servicecomb", "swimlane_group_id": null, "swimlane_group_name": null, "status": null }, { "id": "8d8d5d85-2ae6-463b-b2e9-0fa9d9a0aa7d", "host": "test.static", "name": "test", "service_source_name": "static", "engine_id": null, "engine_type": null, "swimlane_group_id": null, "swimlane_group_name": null, "status": "MICROSERVICE_OF_TARGET_SERVICE_UNROUTING" } ]