• 沒有找到結果。

获取所有支持的应用组件模板_应用管理与运维平台 ServiceStage_API参考_应用管理API_Meta_华为云

N/A
N/A
Protected

Academic year: 2022

Share "获取所有支持的应用组件模板_应用管理与运维平台 ServiceStage_API参考_应用管理API_Meta_华为云"

Copied!
249
0
0

加載中.... (立即查看全文)

全文

(1)

API 参考

文档版本 01

发布日期 2022-02-17

(2)

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址:

https://www.huawei.com

客户服务邮箱:

[email protected]

客户服务电话:4008302118

(3)

目 录

1 使用前必读... 1

1.1 概述... 1

1.2 调用说明...1

1.3 终端节点...2

1.4 约束与限制... 2

1.5 基本概念...2

2 API 概览... 4

3 如何调用 API... 11

3.1 构造请求... 11

3.2 认证鉴权... 13

3.3 返回结果... 14

4 应用示例...16

4.1 环境管理... 16

4.2 应用管理... 18

4.3 组件管理... 20

4.4 注册发现... 24

5 应用管理...27

5.1 Meta... 27

5.1.1 获取所有支持的应用组件模板...27

5.1.2 获取所有支持的应用组件运行时类型...29

5.1.3 获取所有支持的应用资源规格...30

5.2 环境... 32

5.2.1 创建环境... 32

5.2.2 获取所有环境... 36

5.2.3 修改环境信息... 39

5.2.4 根据环境 ID 删除环境... 42

5.2.5 根据环境 ID 获取环境详细信息... 43

5.2.6 修改环境资源... 45

5.3 应用... 49

5.3.1 创建应用... 49

5.3.2 获取所有应用... 51

5.3.3 修改应用信息... 54

(4)

5.3.4 根据应用 ID 删除应用... 56

5.3.5 根据应用 ID 获取应用详细信息... 57

5.3.6 修改应用配置信息... 59

5.3.7 删除应用配置... 61

5.3.8 获取应用配置... 63

5.4 组件... 65

5.4.1 应用中创建组件...65

5.4.2 获取应用所有组件... 72

5.4.3 根据组件 ID 修改组件信息... 76

5.4.4 根据应用组件 ID 删除应用组件... 82

5.4.5 根据组件 ID 获取应用组件信息... 83

5.5 实例... 87

5.5.1 创建组件实例... 87

5.5.2 获取应用组件实例... 96

5.5.3 对组件实例的操作... 100

5.5.4 修改应用组件实例... 101

5.5.5 删除应用组件实例... 105

5.5.6 根据实例 ID 获取实例详细信息... 107

5.5.7 获取组件实例快照... 111

5.6 部署任务... 113

5.6.1 获取部署任务详细信息... 113

6 访问 Git 仓库... 118

6.1 获取仓库授权列表... 119

6.2 获取授权重定向 URL...121

6.3 创建 OAuth 授权...122

6.4 创建私人令牌授权... 125

6.5 创建口令授权... 127

6.6 删除仓库授权... 130

6.7 获取仓库 namespaces...131

6.8 通过 clone url 获取仓库信息...133

6.9 获取命名空间下所有项目... 134

6.10 创建软件仓库项目... 136

6.11 获取项目分支...138

6.12 获取项目 tags... 139

6.13 创建项目 tags... 140

6.14 删除项目 tags... 142

6.15 获取项目 commits... 144

6.16 获取项目 hooks...146

6.17 创建项目 hook... 147

6.18 删除项目 hook... 149

6.19 获取仓库文件目录... 150

6.20 获取仓库文件内容... 152

(5)

6.21 创建仓库文件...154

6.22 修改仓库文件内容... 156

6.23 删除仓库文件...158

7 微服务管理... 160

7.1 认证... 160

7.1.1 获取微服务引擎专享版用户 Token... 160

7.2 微服务... 161

7.2.1 创建微服务静态信息...161

7.2.2 查询指定微服务静态信息... 164

7.2.3 查询所有微服务静态信息... 166

7.2.4 查询微服务唯一标识信息... 168

7.2.5 修改微服务静态信息...171

7.2.6 删除微服务信息... 172

7.2.7 批量删除微服务静态信息... 174

7.3 契约... 176

7.3.1 查询微服务访问契约...176

7.3.2 查询微服务的所有契约... 177

7.3.3 修改微服务访问契约...179

7.4 微服务实例... 181

7.4.1 注册微服务实例... 181

7.4.2 根据 serviceId 查询微服务实例... 183

7.4.3 注销微服务实例... 185

7.4.4 查询微服务实例详细信息... 186

7.4.5 修改微服务实例扩展信息... 188

7.4.6 修改微服务实例状态...190

7.4.7 发送心跳信息...192

7.4.8 按条件查询微服务实例... 193

7.4.9 批量查询微服务实例...196

7.5 依赖关系... 201

7.5.1 查询服务 providers... 201

8 历史 API... 204

8.1 查询配置... 204

8.2 创建服务间依赖关系... 206

8.3 创建上报服务指标... 208

9 数据结构... 213

9.1 参数说明... 213

9.1.1 HealthCheck...213

9.1.2 MicroServiceInstance... 214

9.1.3 HeartbeatSetElement... 215

9.1.4 InstanceHbRst... 215

9.1.5 DelServicesResponse... 215

(6)

9.1.6 MetricData...215

9.1.7 FunctionMetricInfo... 216

9.1.8 InstanceMetricInfo... 217

9.2 公共请求参数... 217

9.2.1 MicroService... 217

9.2.2 Properties... 219

9.2.3 DependencyMicroService...219

9.2.4 Rule... 220

9.2.5 AddOrUpdateRule...220

9.2.6 DataCenterInfo...221

9.2.7 Schema... 221

9.2.8 environment_setting... 222

9.2.9 phases... 222

9.3 公共响应参数... 222

9.3.1 WatchMicroServiceKey... 223

9.3.2 SuccessdResponse... 223

9.3.3 ServiceInfo... 223

9.3.4 AggregateMetricInfo... 224

9.3.5 ServiceDetail... 225

9.3.6 TenantProject... 225

9.3.7 Error... 226

10 权限策略说明... 227

10.1 策略及授权项说明... 227

11 附录... 232

11.1 状态码...232

11.2 错误码...233

11.3 获取 ID...241

11.4 获取帐号 ID... 242

12 修订记录... 243

(7)

1 使用前必读

概述 调用说明 终端节点 约束与限制 基本概念

1.1 概述

应用管理与运维平台(ServiceStage)是面向企业的应用管理与运维平台,提供应用发 布、部署、监控与运维等一站式解决方案。支持Java、Go、PHP、Node.js、Python、

Docker、Tomcat等运行环境。支持Web应用,以及Apache ServiceComb、Spring Cloud、Dubbo、Mesher服务网格等微服务应用和通用应用,让企业应用上云更简 单。

ServiceStage所提供的自研接口类型如下:

● 应用管理

● 访问Git仓库

● 微服务管理

1.2 调用说明

ServiceStage提供了REST(Representational State Transfer)风格API,支持您通过 HTTPS请求调用,调用方法请参见表1-1。

1-1 调用说明

接口 调用方法

应用管理 请参见如何调用API。

访问Git仓库 请参见如何调用API。

(8)

接口 调用方法

微服务管理 ● 调用微服务引擎专业版的微服务管理接口的方法请参考如何调用

API。

● 调用微服务引擎专享版的微服务管理接口的方法如下:

1. 登录ServiceStage控制台,选择“基础设施 > 微服务引擎 (CSE)”。

2. 选择待调用接口的微服务引擎,查看或单击 复制该引擎的 服务注册发现地址。

3. 参考如何调用API调用该接口,在请求URI中,替换 {Endpoint}为已获取到的服务注册发现地址。

历史API 请参见具体接口章节的“调用方法”。

1.3 终端节点

终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和

终端节点中查询所有服务的终端节点。

1.4 约束与限制

● 您能创建的资源数量与配额有关系,具体请参见关于配额。

● 更详细的限制请参见具体API的说明。

1.5 基本概念

● 帐号

用户注册云平台时的帐号,帐号对其所拥有的资源及云服务具有完全的访问权 限,可以重置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号 安全,建议您不要直接使用帐号进行日常管理工作,而是创建用户并使用他们进 行日常管理工作。

● 用户

由帐号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问 密钥)。

在我的凭证下,您可以查看帐号ID和用户ID。通常在调用API的鉴权过程中,您需 要用到帐号、用户和密码等信息。

● 区域(Region)

指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互 通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要 求,或满足不同地区的法律或其他要求。

您可以从地区和终端节点中查询服务所在的区域。

● 可用区(AZ)

一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上 再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高 速光纤相连,以满足用户跨AZ构建高可用性系统的需求。

(9)

● 项目

云平台的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的 资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可 以访问您帐号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以 在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位 进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精 确。

查看项目ID,请参考获取ID。

1-1 项目隔离模型

● 企业项目

企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔 离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户

指南》。

(10)

2 API 概览

ServiceStage API为开发者、合作伙伴提供开发、部署、托管、运维的开放接口,帮助 用户快速、低成本地实现业务创新,缩短应用上线周期。

对应的接口参考请参考下表:

2-1 接口简介

类型 子类型 说明

应用管理接口 请使用如下 Endpoint:

servicestage.<re gionname>.myh uaweicloud.com

Meta接口

应用模板、运行时、应用

资源规格相关的接口。

环境接口

应用环境相关的接口。

应用接口

应用相关的接口。

组件接口

应用组件相关的接口。

实例接口

应用组件实例相关的接

口。

部署任务接口

Job相关的接口。

访问Git仓库接口 请使用如下 Endpoint:

servicestage.<re gionname>.myh uaweicloud.com

访问Git仓库接口

Git仓库授权、仓库命名空

间、项目、分支、tags、

commits、hooks、仓库文 件目录、内容相关的接 口。

微服务管理接口

认证接口

微服务身份认证功能的相

关操作接口。

微服务接口

微服务管理的相关操作接

口。

契约接口

微服务契约查询、上传等

相关操作接口。

(11)

类型 子类型 说明

微服务实例接口

微服务实例注册、上报心

跳等相关操作接口。

依赖关系接口

微服务依赖关系查询接

口。

Meta 接口

2-2 Meta 接口介绍

API 说明

获取所有支持的应用组件模板

此API用来获取所有内置应用组件模板。

获取所有支持的应用组件运行时类型

此API用来获取所有支持应用组件运行时

类型。

获取所有支持的应用资源规格

通过此API获取所用支持的应用资源规

格。

环境接口

2-3 环境接口介绍

API 说明

创建环境

此API用来创建环境。

获取所有环境

此API用来获取所有已经创建环境。

修改环境信息

此API通过环境ID修改环境信息。

根据环境ID删除环境

此API通过环境ID删除环境。

根据环境ID获取环境详细信息

此API通过环境ID获取环境详细信息。

修改环境资源

此API用来修改环境资源。

应用接口

2-4 应用接口介绍

API 说明

创建应用

此API用来创建应用。

(12)

API 说明

获取所有应用

此API用来获取所有已经创建的应用。

修改应用信息

此API通过应用ID修改应用信息。

根据应用ID删除应用

此API通过应用ID删除应用。

根据应用ID获取应用详细信息

此API通过应用ID获取应用详细信息。

修改应用配置信息

此API用来添加或修改应用配置信息。

删除应用配置

此API用来删除应用配置信息。

获取应用配置

此API用来获取应用配置信息。

组件接口

2-5 组件接口介绍

API 说明

应用中创建组件

此API用来在应用中创建组件。

获取应用所有组件

此API用来获取应用下所有应用组件。

根据组件ID修改组件信息

此API通过组件ID修改组件信息。

根据应用组件ID删除应用组件

此API通过应用组件ID删除应用组件。

根据组件ID获取应用组件信息

此API通过组件ID获取应用组件信息。

实例接口

2-6 实例接口介绍

API 说明

创建组件实例

此API用来创建应用组件实例。

获取应用组件实例

此API用来获取组件下的所有组件实例。

对组件实例的操作

此API用来执行对组件实例的操作。

修改应用组件实例

此API用来修改应用组件实例。

删除应用组件实例

此API用来删除应用组件实例。

根据实例ID获取实例详细信息

此API通过实例ID获取实例详细信息。

获取组件实例快照

此API用来获取应用组件实例快照信息。

(13)

部署任务接口

2-7 部署任务接口介绍

API 说明

获取部署任务详细信息

此API用来获取部署任务详细信息。

访问 Git 仓库接口

2-8 访问 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用来创建仓库文件。

(14)

API 说明

修改仓库文件内容

此API用来修改仓库文件内容。

删除仓库文件

此API用来删除仓库文件内容。

认证接口

2-9 认证接口介绍

API 说明

获取微服务引擎专

享版用户Token

此API用来获取微服务引擎专享版用户Token,该Token是访问

接口的唯一凭据。

微服务接口

2-10 微服务接口介绍

API 说明

创建微服务静态信

此API用来创建微服务静态信息。

在注册微服务实例前需要创建微服务静态信息,之后注册的 微服务实例根据serviceId这个字段与静态信息关联,一个微服 务对应对多个实例。

serviceId可以定制。如果定制了,系统将使用定制的 serviceId;如果没定制,系统会随机生成serviceId。

查询指定微服务静

态信息

此API用来根据serviceId查询微服务静态信息。

查询所有微服务静

态信息

此API用来查询所有的微服务静态信息。

查询微服务唯一标

识信息

此API用来指定条件查询微服务serviceId或schema的唯一标识 信息。

修改微服务静态信

此API用来更新微服务静态信息。

创建微服务静态信息后可对服务部分字段进行更新,每次更 新都需要传入完整的服务静态信息json,也就是说,即便不更 新部分的字段也要作为json的属性传过去。

删除微服务信息

此API用来删除一个微服务定义及其相关信息,同时注销其所

有实例信息。

批量删除微服务静 态信息

此API用来批量删除指定的微服务定义及其相关信息,同时注 销其所有实例信息。

(15)

契约接口

2-11 契约接口介绍

API 说明

查询微服务访问契 约

此API用来根据指定的serviceId和schemaId查询微服务的 schema信息。

查询微服务的所有

契约

此API用来查询一个微服务的所有契约信息,包括schemaId和 summary信息。

修改微服务访问契

此API用来根据schemaId更新微服务的访问契约内容。

微服务实例接口

2-12 微服务实例介绍

API 说明

注册微服务实例

此API用来注册微服务实例。

创建微服务后就可以注册该微服务的实例了。注册微服务实 例时,需提供该微服务实例相关的信息。

instanceId可定制,如果定制了,再次注册就直接将全内容覆 盖。如果没定制,逻辑如下:系统自动生成id,如果

endpoints内容重复,则使用原来的id。

根据serviceId查询

微服务实例

此API用来根据serviceId发现该微服务的所有实例。

注销微服务实例

此API用来根据instanceId进行实例注销。

查询微服务实例详

细信息

此API用来根据serviceid和instanceId获取该实例的详细信 息。

修改微服务实例扩

展信息

此API用来根据instanceId添加/更新一个微服务实例扩展信 息。

修改微服务实例状

此API用来根据instanceId更新一个微服务实例状态。

发送心跳信息

此API用来发送心跳信息。

服务提供端需要向服务中心发送心跳信息,以保证服务中心 知道服务实例是否健康。

按条件查询微服务

实例

此API用来根据微服务版本规则或字段条件发现该微服务的实

例。

批量查询微服务实 例

此API用来根据微服务版本规则或字段条件批量发现多个微服 务的实例。

(16)

依赖关系接口

2-13 依赖关系接口介绍

API 说明

查询服务providers

此API用来根据consumerId获取该服务的所有providers。

(17)

3 如何调用 API

构造请求 认证鉴权 返回结果

3.1 构造请求

本节介绍REST API请求的组成,并以调用IAM的获取用户Token接口说明如何调用 API,该API获取用户的Token,Token可以用于调用其他API时鉴权。

您还可以通过这个视频教程了解如何构造请求调用API:https://

bbs.huaweicloud.com/videos/102987 。

请求 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

(18)

3-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

请求消息体

请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求 消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。

(19)

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),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。

3.2 认证鉴权

调用接口有如下认证方式:

Token认证:通过Token认证调用请求。

Token 认证

说明

Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得 操作API的权限。

(20)

在构造请求中以调用获取用户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....

您还可以通过这个视频教程了解如何使用Token认证:https://

bbs.huaweicloud.com/videos/101333 。

3.3 返回结果

状态码

请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。

状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码 列表请参见状态码。

对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。

响应消息头

对应请求消息头,响应同样也有消息头,如“Content-type”。

对于获取用户Token接口,返回消息头,其中“x-subject-token”就是需要获取的用 户Token。有了Token之后,您就可以使用Token认证调用其他API。

(21)

响应消息体

响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应 消息头之外的内容。

对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。

{ "token": {

"expires_at": "2019-02-13T06:52:13.855000Z", "methods": [

"password"

],

"catalog": [ {

"endpoints": [ {

"region_id": "xx-xxxxxx-1", ...

当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所 示。

{ "error_code": "FGS.0111", "error_msg": "xxxxxxxxx"

}

其中,error_code表示错误码,error_msg表示错误描述信息。

(22)

4 应用示例

环境管理 应用管理 组件管理 注册发现

4.1 环境管理

场景描述

本章节指导用户通过API实现环境管理。API的调用方法请参见如何调用API。

流程介绍

1. 创建环境,添加基础资源 2. 为环境添加其他需要的资源 3. 根据环境ID查询环境

前提条件

● 获取IAM的token,调用Token认证,并将token值设置为环境变量:export Token={token}。

● 获取ServiceStage的endpoint,参考地区和终端节点,以下示例中以 {servicestage_endpoint}代替。

操作步骤

步骤1 创建环境,添加基础资源。

调用创建环境接口,请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://

{servicestage_endpoint}/v2/{project_id}/cas/environments" -d '{

"name": "dev-env",

"description": "develop environment", "enterprise_project_id": "0",

(23)

"charge_mode": "provided",

"vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [

{

"id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce"

} ] }'

返回结果:

{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env",

"alias": null,

"description": "develop environment",

"project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0",

"charge_mode": "provided",

"vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [

{

"id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce"

} ],

"creator": "xxx",

"create_time": 1578984198394, "update_time": 1578984198394 }

得到的id,后续示例中以{environment_id}代替。

步骤2 为环境添加其他需要的资源。

调用修改环境资源接口。根据自己已有的资源和需求,可以将和环境相同vpc下的 ecs,cce,elb,cse,eip等多种类型的资源添加到环境中。请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PATCH "https://

{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}/resources" -d '{

"add_optional_resources": [{

"id": "default", "type": "cse"

}]

}'

返回结果:

{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env",

"alias": null,

"description": "develop environment",

"project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0",

"charge_mode": "provided",

"vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [

{

"id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce"

} ],

"optional_resources": [ {

"id": "default", "type": "cse"

} ],

(24)

"creator": "xxx",

"create_time": 1578984198394, "update_time": 1578984198394 }

步骤3 根据环境ID查询环境。

调用根据环境ID获取环境详细信息接口,去查询环境。请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://

{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}"

返回结果:

{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env",

"alias": null,

"description": "develop environment",

"project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0",

"charge_mode": "provided",

"vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [

{

"id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce"

} ],

"optional_resources": [ {

"id": "default", "type": "cse"

} ],

"creator": "xxx",

"create_time": 1578984198394, "update_time": 1578984198394 }

----结束

4.2 应用管理

场景描述

本章节指导用户通过API实现应用管理。API的调用方法请参见如何调用API。

流程介绍

1. 创建应用

2. 为应用添加环境变量 3. 查询应用

前提条件

● 获取IAM的token,调用Token认证,并将token值设置为环境变量:export Token={token}。

● 获取ServiceStage的endpoint,参考地区和终端节点,以下示例中以 {servicestage_endpoint}代替。

(25)

操作步骤

步骤1 创建应用。调用创建应用接口,请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://

{servicestage_endpoint}/v2/{project_id}/cas/applications" -d '{

"name": "TestApp",

"description": "application_description", "enterprise_project_id": "0"

}'

返回结果:

{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp",

"description": "application_description", "creator": "string",

"project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0",

"create_time": 1578984171041, "update_time": 1578984171041 }

得到的id,后续示例中以{application_id}代替。

步骤2 为应用添加环境变量,后续在该应用某环境下部署的组件都会继承该应用的环境变 量。调用修改应用配置信息接口。请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PUT "https://

{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/configuration" -d '{

"environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": {

"env": [ {

"name": "app-env", "value": "env"

} ] } }'

返回结果:

{ "application_id": "06cf2fda-af45-44b4-9e22-6294c4804515", "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": {

"env": [ {

"name": "app-env", "value": "env"

} ] } }

步骤3 根据应用ID查询应用详细信息。调用根据应用ID获取应用详细信息接口,去查询应用 信息。请求示例如下。

curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://

{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}"

返回结果:

{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp",

"description": "description", "creator": "xxx",

"project_id": "bf8523d898b64e4eb956e3be3555ca16",

(26)

"enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }

----结束

4.3 组件管理

场景描述

本章节指导用户通过API实现组件管理。API的调用方法请参见如何调用API。

流程介绍

1. 在某个应用下创建组件 2. 创建组件实例

3. 查询创建组件实例任务状态 4. 升级组件实例

5. 获取组件实例快照 6. 回滚组件实例

7. 对组件实例进行其他生命周期的操作,如停止,启动,重启等

前提条件

● 获取IAM的token,调用Token认证,并将token值设置为环境变量:export Token={token}。

● 获取ServiceStage的endpoint,参考地区和终端节点,以下示例中以 {servicestage_endpoint}代替。

操作步骤

步骤1 在某个应用下创建组件。调用应用中创建组件接口,请求示例如下。

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",

(27)

"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, "pipeline_ids": [], "create_time": 0, "update_time": 0 }

得到的id,后续示例中以{component_id}代替。

说明

“runtime”字段支持的值包括:Tomcat8、Java8、Php7、Nodejs8、Docker、Python3。

步骤2 创建组件实例。调用创建组件实例接口。请求示例如下。

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"

} ] }'

返回结果:

(28)

{ "instance_id": "89f5baf5-efe4-4f12-9c0d-734d2af5a184", "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"

}

得到的job_id,后续示例中以{job_id}代替。得到的instance_id,后续示例中以 {instance_id}代替。

步骤3 查询创建组件实例任务状态。调用获取部署任务详细信息接口,去查询任务状态是否 成功。请求示例如下。

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",

(29)

"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 }

步骤4 升级组件实例。调用修改应用组件实例接口。请求示例如下。然后还是调用步骤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"

}

步骤5 获取组件实例快照。调用获取组件实例快照接口。请求示例如下。该步骤是回退的前 置步骤,用于查询可以回退的版本。

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]

}

步骤6 回滚组件实例。调用对组件实例的操作接口。请求示例如下。然后用返回的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"

}}'

返回结果:

(30)

{ "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"

}

步骤7 对组件实例进行其他生命周期的操作,如停止,启动,重启等。调用对组件实例的操

作接口。这里以停止组件实例为例子,请求示例如下。然后用返回的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"

}

----结束

4.4 注册发现

场景描述

本章节指导用户通过API实现微服务注册与发现。API的调用方法请参见如何调用API。

流程介绍

1. 注册第一个微服务my-provider 2. 注册微服务my-provider的实例 3. 注册第二个微服务my-consumer

4. my-consumer发现第一个微服务my-provider的实例 说明

以上微服务名称均为示例。

前提条件

● 获取IAM的token,调用Token认证,并将token值设置为环境变量:export Token={token}。

● 获取CSE的endpoint,参考地区和终端节点,以下示例中以{cse_endpoint}代替。

操作步骤

步骤1 注册微服务my-provider。

调用创建微服务静态信息接口,请求示例如下。

curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/

registry/microservices" -d '{

"service": {

"serviceName": "my-provider", "appId": "default",

"version": "1.0.0", "description": "test", "level": "MIDDLE",

(31)

"status": "UP"

} }'

返回结果:

{"serviceId":"918282e8562dc5fdc9a8dcd4d1baabb492190aa4"}

得到的serviceId,后续示例中以{providerServiceId}代替。

步骤2 注册微服务my-provider的实例。

调用注册微服务实例接口。实例有效期1小时,到期自动下线。假设provider实例监听 的地址为127.0.0.1:8080,请求示例如下。

curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/

registry/microservices/{providerServiceId}/instances" -d '{

"instance": {

"hostName": "test", "endpoints": [

"rest:127.0.0.1:8080"

],

"status": "UP", "healthCheck": { "mode": "push", "interval": 900, "times": 3 }

} }'

返回结果:

{"instanceId":"2be605a095ed11eabcbe0255ac100fa3"}

步骤3 注册微服务my-consumer。

调用创建微服务静态信息接口,请求示例如下。

curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/

registry/microservices" -d '{

"service": {

"serviceName": "my-consumer", "appId": "default",

"version": "1.0.0", "description": "test", "level": "MIDDLE", "status": "UP"

} }'

返回结果:

{"serviceId":"9db248934c31fc754d6e922b48ede4a5c004d3c1"}

得到的serviceId,后续示例中以{consumerServiceId}代替。

步骤4 my-consumer发现my-provider的实例。

调用按条件查询微服务实例接口,consumer带着自身的serviceId去服务中心查询 provider的实例信息,请求示例如下。

curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -H "X-ConsumerId:{consumerServiceId}" - XGET "https://{cse_endpoint}/v4/default/registry/instances?appId=default&serviceName=my-

provider&version=0.0.0%2B"

返回结果:

{ "instances": [

(32)

{

"instanceId": "2be605a095ed11eabcbe0255ac100fa3", "serviceId": "918282e8562dc5fdc9a8dcd4d1baabb492190aa4", "endpoints": [

"rest:127.0.0.1:8080"

],

"hostName": "test", "status": "UP", "healthCheck": { "mode": "push", "interval": 150, "times": 3 },

"timestamp": "1589465646", "modTimestamp": "1589465646", "version": "1.0.0"

} ] }

在实际业务中,consumer可从实例查询结果中的"endpoint"字段获取provider实例的 地址,发起业务调用。

您还可以进入“ServiceStage>基础设施>微服务引擎(CSE)>查看控制台 >服务目 录”,查看服务注册信息。

----结束

(33)

5 应用管理

Meta 环境 应用 组件 实例 部署任务

5.1 Meta

5.1.1 获取所有支持的应用组件模板

功能介绍

此API用来获取所有内置应用组件模板。

调试

您可以在API Explorer中调试该接口。

URI

GET /v2/{project_id}/cas/metadata/templates

5-1 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

(34)

请求消息

响应消息

5-2 响应参数

参数 类型 说明

templates Array of objects 模板参数,请参考表5-3。

5-3 templates 参数说明

参数 类型 说明

template_name String 模板名称

template_desc String 模板描述

source_type String 源码类别

source_repo_url String 源码仓库URL

runtime String 运行时

示例

请求示例 无 响应示例

{ "templates": [ {

"template_name": "magento",

"template_desc": "Magento e-commerce application", "source_type": "Swr",

"source_repo_url": "swr.xxxxxxx.xxxxxxx.com/xxxxxxx/magento:2.2-int-1.0", "runtime": "Php7"

} ] }

状态码

5-4 状态码说明

HTTP状态码 描述

200 操作成功。

(35)

HTTP状态码 描述

400 错误的请求。

404 请求对象不存在。

500 内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。

5.1.2 获取所有支持的应用组件运行时类型

功能介绍

此API用来获取所有支持应用组件运行时类型。

调试

您可以在API Explorer中调试该接口。

URI

GET /v2/{project_id}/cas/metadata/runtimes

5-5 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

请求消息

请求参数 无

响应消息

响应参数 表5-6 响应参数

参数 类型 说明

runtimes Array of objects 运行时参数,请参考表

5-7。

(36)

5-7 runtimes 参数说明

参数 类型 说明

type_name String 类型名称

display_name String 显示名称

container_default_port Integer 容器默认端口

type_desc String 类型描述

示例

请求示例 无 响应示例

{ "runtimes": [ {

"type_name": "Java8", "display_name": "Java 8", "container_default_port": 8080, "type_desc": "Java 8 runtime server"

} ] }

状态码

5-8 状态码说明

HTTP状态码 描述

200 操作成功。

400 错误的请求。

404 请求对象不存在。

500 内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。

5.1.3 获取所有支持的应用资源规格

功能介绍

通过此API获取所用支持的应用资源规格。

(37)

调试

您可以在API Explorer中调试该接口。

URI

GET /v2/{project_id}/cas/metadata/flavors

5-9 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

请求消息

响应消息

5-10 响应参数

参数 类型 说明

flavors Array of objects 规格参数,请参考表

5-11。

5-11 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 是否是自定义资源规格

示例

请求示例

(38)

无 响应示例

{ "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

} ] }

状态码

5-12 状态码说明

HTTP状态码 描述

200 操作成功。

400 错误的请求。

404 请求对象不存在。

500 内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。

5.2 环境

5.2.1 创建环境

功能介绍

环境是用于应用部署和运行的计算、存储、网络等基础设施的集合。ServiceStage把相 同VPC下的CCE集群加上多个ELB、RDS、DCS实例组合为一个环境,如:开发环境,

测试环境,预生产环境,生产环境。环境内网络互通,可以按环境维度来管理资源、

部署服务,减少具体基础设施运维管理的复杂性。

此API用来创建环境。

调试

您可以在API Explorer中调试该接口。

(39)

URI

POST /v2/{project_id}/cas/environments

5-13 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

请求消息

5-14 请求参数说明

参数 参数类型 必选 描述

name String 是 环境名称。

由大小写英文字母、数字、

中划线(-)、下划线(_)

组成,并以大小写英文字母 开头,大小写英文字母或者 数字结尾,长度为2~64个字 符。

alias String 否 环境别名。

最大长度为64个字符。

description String 否 环境描述。

最大长度为128个字符。

enterprise_p

roject_id String 否 企业项目ID。

charge_mod

e String 否 收费模式,支持provided、

on_demanded、monthly。

默认provided,表示使用用 户提供的已有资源,无需收 费。on_demanded表示按需 收费,monthly表示包月收 费。

vpc_id String 是 虚拟私有云ID。

base_resourc

es Array of

objects 是 基础资源,请参考表5-15。

optional_res

ources Array of

objects 否 可选资源,请参考表5-15。

(40)

5-15 resource 参数

参数 参数类型 必选 描述

id String 是 资源ID。

name String 否 资源名称。

type String 是 基础资源:cce、cci、ecs、as。

可选资源:rds、dcs、elb等其他类型。

响应消息

5-16 响应参数说明

参数 参数类型 描述

id String 环境ID

name String 环境名称

alias String 环境别名

description String 环境描述 project_id String 项目ID enterprise_pro

ject_id String 企业项目ID charge_mode String 收费模式 vpc_id String 虚拟私有云ID base_resource

s Array of

objects 基础资源,请参考表5-17 optional_reso

urces Array of

objects 可选资源,请参考表5-17 creator String 创建人

create_time Integer 创建时间 update_time Integer 修改时间

5-17 resource

参数 参数类型 描述

id String 资源ID

name String 资源名称

(41)

参数 参数类型 描述

type String 基础资源:cce、cci、ecs、as 可选资源:rds、dcs、elb等其他类型

示例

请求示例

{ "name": "development-env", "description": "",

"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"

} ] }

响应示例

{ "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 }

(42)

状态码

5-18 状态码说明

HTTP状态码 描述

200 操作成功。

400 错误的请求。

404 请求对象不存在。

500 内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。

5.2.2 获取所有环境

功能介绍

此API用来获取所有已经创建的环境。

调试

您可以在API Explorer中调试该接口。

URI

GET /v2/{project_id}/cas/environments

5-19 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

5-20 查询参数

参数 参数类型 必选 描述

limit Integer 否 指定个数,取值[0, 100]或者1000,指定 的值不在该范围内的话相当于赋值为10。

默认1000,用于不分页的场景。分页的 场景取值请用[0, 100]。

offset Integer 否 指定偏移量,表示查询第n条数据后的结 果。

(43)

参数 参数类型 必选 描述

order_by String 否 排序字段,默认按创建时间排序。

排序字段支持枚举值:create_time、

name、update_time。传的值不在支持 的枚举值范围内的话按默认排序字段排 序。

order String 否 desc/asc,默认desc。

请求消息

响应消息

5-21 响应参数

参数 参数类型 描述

count Integer 环境总数。

environments Array of

objects 环境参数,请参考表5-22。

5-22 environments 参数

参数 参数类型 描述

id String 环境ID

name String 环境名称

alias String 环境别名

description String 环境描述 project_id String 项目ID enterprise_pro

ject_id String 企业项目ID charge_mode String 收费模式 vpc_id String 虚拟私有云ID base_resource

s Array of

objects 基础资源,请参考表5-23 optional_reso

urces Array of

objects 可选资源,请参考表5-23

(44)

参数 参数类型 描述 creator String 创建人 create_time Integer 创建时间 update_time Integer 修改时间

5-23 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 }

(45)

状态码

5-24 状态码说明

HTTP状态码 描述

200 操作成功。

400 错误的请求。

404 请求对象不存在。

500 内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。

5.2.3 修改环境信息

功能介绍

此API通过环境ID修改环境信息。

调试

您可以在API Explorer中调试该接口。

URI

PUT /v2/{project_id}/cas/environments/{environment_id}

5-25 路径参数

参数 参数类型 必选 描述

project_id String 是 租户项目ID。

environment_i

d String 是 环境ID。

數據

表 5-11 flavors 参数说明
表 5-15 resource 参数
表 5-39 add_optional_resources 参数
表 5-49 查询参数 参数 参数类型 必选 描述 limit String 否 指定个数,取值[0, 100]或者1000,指定 的值不在该范围内的话相当于赋值为10。 默认1000,用于不分页的场景。分页的 场景取值请用[0, 100]。 offset String 否 指定偏移量,表示查询第n条数据后的结 果。 order_by String 否 排序字段,默认按创建时间排序。 排序字段支持枚举值:create_time, name,update_time。传的值不在支持 的枚举值范围内的话按默认排序
+7

參考文獻

相關文件

Hikami proposed a state integral model which gives a topological invariant for hyperbolic 3-manifold.. Saddle Point of

◆ Understand the time evolutions of the matrix model to reveal the time evolution of string/gravity. ◆ Study the GGE and consider the application to string and

It should be stressed that the four eigenvalues obtained here do not change even if we include other field outside KBc subalgebra or outside the dressed B 0 gauge, since such fields

„ „ The The extended nature extended nature of string theory introduces of string theory introduces additional degrees of freedom?. additional degrees of freedom localized

• No vector potential needed for gauge symmetry Vector potential is useful for

Low temperature High temperature YM theory confinement deconfinement D4 brane model solitonic D4 localized D3

Don Knuth James Morris Vaughan Pratt..

private void Page_Load(object sender, System.EventArgs e) {{. string dataSource