• 沒有找到結果。

查询堆栈列表_应用编排服务 AOS_API参考_API_华为云

N/A
N/A
Protected

Academic year: 2022

Share "查询堆栈列表_应用编排服务 AOS_API参考_API_华为云"

Copied!
125
0
0

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

全文

(1)

API 参考

文档版本 01

发布日期 2021-11-19

(2)

版权所有 © 华为技术有限公司 2021。 保留一切权利。

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

商标声明

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

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

注意

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

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

(3)

目 录

1 使用前必读... 1

1.1 概述... 1

1.2 调用说明...1

1.3 终端节点...1

1.4 约束与限制... 1

1.5 基本概念...1

2 API 概览... 3

3 如何调用 API...5

3.1 构造请求...5

3.2 认证鉴权...9

3.3 返回结果... 10

4 快速入门...12

5 API...18

5.1 创建模板... 18

5.2 查询模板列表...21

5.3 更新模板... 25

5.4 删除模板... 27

5.5 下载模板... 28

5.6 查询模板... 31

5.7 查询模板输入...33

5.8 获取模板列表...36

5.9 创建堆栈... 39

5.10 删除堆栈... 43

5.11 执行堆栈生命周期... 44

5.12 查询堆栈列表... 47

5.13 查询堆栈... 51

5.14 查询堆栈元素列表... 60

5.15 查询堆栈元素... 64

5.16 查询堆栈输出... 66

5.17 查询堆栈输入... 68

5.18 查询堆栈执行记录... 69

5.19 查询堆栈执行记录列表...75

(4)

6 附录... 79

6.1 状态码...79

6.2 错误码...81

6.3 获取项目 ID... 118

6.4 获取帐号 ID... 119

7 修订记录... 120

(5)

1 使用前必读

1.1 概述

欢迎使用应用编排服务(Application Orchestration Service)。应用编排服务为企业 提供应用上云的自动化能力,支持编排华为云上的主流云服务,实现一键式的应用创 建及云服务资源开通,提供高效的一键式云上应用复制和迁移能力。

您可以使用本文档提供API对应用编排服务进行相关操作,如创建、查询、删除模板 等。支持的全部操作请参见API概览API概览。

在调用应用编排服务API之前,请确保已经充分了解应用编排服务相关概念,详细信息 请参见产品介绍。

1.2 调用说明

应用编排服务提供了REST(Representational State Transfer)风格API,支持您通过 HTTPS请求调用,调用方法请参见如何调用API。

1.3 终端节点

终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您 可以从地区和终端节点中查询应用编排服务的终端节点。

1.4 约束与限制

● 您能创建的应用编排服务资源的数量与配额有关系,具体请参见服务配额。如果 您需要扩大配额,请参见如何申请扩大配额。

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

1.5 基本概念

● 帐号

(6)

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

● 用户

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

在我的凭证下,您可以查看帐号ID和IAM用户ID。通常在调用API的鉴权过程中,

您需要用到帐号、用户和密码等信息。

● 区域(Region)

从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象 存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属 Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只 承载同一类业务或只面向特定租户提供业务服务的专用Region。

详情请参见区域和可用区。

● 可用区(AZ,Availability Zone)

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

● 项目

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

1-1 项目隔离模型

同样在我的凭证下,您可以查看项目ID。

● 企业项目

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

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

(7)

2 API 概览

类型 说明

模板管理接口 模板管理接口,包括创建、查询、更新、删除、下载模

板的接口等。

通过这些接口,您可以创建模板、查询模板列表、更新 模板、删除模板、查询指定模板和查询模板输入。

堆栈管理接口 堆栈管理接口,包括创建、查询、删除堆栈的接口等。

通过这些接口,您可以创建堆栈、删除堆栈,执行堆栈 生命周期,查询堆栈列表、堆栈、堆栈元素列表、堆栈 元素、堆栈输出、堆栈输入、堆栈执行记录、堆栈执行 记录列表。

模板管理接口

模板管理接口,包括创建、查询、更新、删除模板的接口等。通过这些接口,您可以 创建模板、查询模板列表、更新模板、删除模板、下载模板、查询指定模板和查询模 板输入。

2-1 模板管理接口

API 说明

创建模板 通过将本地模板文件上传至服务器的方式来创建模板。

查询模板列表 根据提供的参数查询模板列表。

更新模板 更新模板,包括两种方式:本地上传和URL上传更新。

只有当未使用该模板创建堆栈之前才能进行更新。

删除模板 删除一个指定的模板。

只有不存在使用该模板创建的堆栈时才能删除。

下载模板 下载一个指定的模板。

(8)

API 说明

查询模板 查询指定模板的详细信息,包括模板名称、模板版本、

模板描述、创建时间、更新时间等。

查询模板输入 查询指定模板的输入参数。

获取模板列表 根据提供的参数获取模板列表。

堆栈管理接口

堆栈管理接口,包括创建、查询、删除堆栈的接口等。通过这些接口,您可以创建堆 栈、删除堆栈,执行堆栈生命周期,查询堆栈列表、堆栈、堆栈元素列表、堆栈元 素、堆栈输出、堆栈输入、堆栈执行记录、堆栈执行记录列表。

2-2 堆栈管理接口

API 说明

创建堆栈 创建堆栈,堆栈的输入由模板和输入参数两部分组成。

● 模板:定义了堆栈的骨架,决定了堆栈内部节点的构 造以及节点间的关系,以及每个节点的属性的值或来 源。

● 输入参数:是模板内节点属性值的来源之一,定义在 模板的inputs字段下,由模板内的get_input函数触 发。

删除堆栈 删除一个指定的堆栈。

执行堆栈生命周期 执行特定的堆栈生命周期操作。

查询堆栈列表 查询堆栈列表。

查询堆栈 查询指定堆栈的详细信息,包括堆栈名称、堆栈描述、

模板id、模板名称、堆栈状态等。

查询堆栈元素列表 查询堆栈元素列表。

查询堆栈元素 查询堆栈某个元素的详细信息。

查询堆栈输出 查询指定堆栈输出。

查询堆栈输入 查询指定堆栈输入。

查询堆栈执行记录 查询堆栈某一次执行记录。

查询堆栈执行记录列表 查询堆栈最近的执行记录列表。

(9)

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包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传 递它,所以在此单独强调。

3-1 URI 中的参数说明

参数 描述

URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。

Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的 Endpoint不同,您可以从地区和终端节点终端节点及区域说明终端 节点(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条数据。

(10)

例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域 的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部 分找到resource-path(/v3/auth/tokens),拼接起来如下所示。

https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

3-1 URI 示意图

说明

为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。

这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分 省略。

请求方法

HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。

3-2 HTTP 方法

方法 说明

GET 请求服务器返回指定资源。

PUT 请求服务器更新指定资源。

POST 请求服务器新增资源或执行特殊操作。

DELETE 请求服务器删除指定资源,如删除对象等。

HEAD 请求服务器资源头部。

PATCH 请求服务器更新资源的部分内容。

当资源不存在的时候,PATCH可能会去创建一个新的资 源。

在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为:

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

请求消息头

附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。

详细的公共请求消息头字段请参见表3-3。

(11)

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认证的 接口请求,则 该字段必选。

e9993fc787d94b6c886cb aa340f9c0f4

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认证”。

(12)

对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添 加消息头后的请求如下所示。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

请求消息体(可选)

该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中 Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中 文,则中文字符必须为UTF-8编码。

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。

对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说 明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中

username

为用户名,

domainname

为用户所属的帐号名称,

********

为用户登录密 码,

xxxxxxxxxxxxxxxxxx

为project的名称,如“cn-north-4”,您可以从地区和终端 节点终端节点(Endpoint)获取。

说明

scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可 以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获 取用户Token。

POST https://iam.cn-north-4.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。

(13)

3.2 认证鉴权

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

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

● AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

推荐使用AK/SK认证,其安全性比Token认证要高。

Token 认证

说明

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

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

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

Token可通过调用获取用户Token接口获取,调用本服务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....”加到请求消息头即可,如下所示。

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects Content-Type: application/json

X-Auth-Token: ABCDEFJ....

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

bbs.huaweicloud.com/videos/101333。

(14)

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不同,使用时请注意。

3.3 返回结果

状态码

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

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

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

响应消息头

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

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

(15)

3-2 获取用户 Token 响应消息头

响应消息体(可选)

该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中 Content-Type对应,传递除响应消息头之外的内容。

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

{ "token": {

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

"password"

],

"catalog": [ {

"endpoints": [ {

"region_id": "az-01", ...

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

{ "error_msg": "The format of message is error", "error_code": "AS.0001"

}

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

(16)

4 快速入门

概述

本文通过调用一系列应用编排服务的API编排部署Magento电子商务系统,介绍使用应 用编排服务API的基本流程。

创建出的Magento电子商务系统如下所示:

4-1 Magento 电子商务系统

(17)

API的调用方法请参见如何调用API。

创建流程

1. 调用创建模板接口,上传Magento电商应用公共模板作为自己的模板。

2. 调用查询模板输入接口,查看模板输入,作为后续创建堆栈时需要配置的输入参 数的修改。

3. 调用创建堆栈接口,创建Magento电子商务系统堆栈。

4. 调用查询堆栈接口,查看堆栈创建是否成功。

5. 调用查询堆栈输出接口,查询堆栈的输出,查看Magento电子商务系统。

编排部署 Magento 电子商务系统

步骤1 调用创建模板接口,上传Magento电商应用公共模板作为自己的模板。

1. 选择左侧导航栏的“模板市场”,单击“公共模板”。在“行业场景模板”下,

单击Magento电商应用名称,查看详情。单击“下载模板”,保存公共模板文件

(例如:e-business-app.yaml)到本地。

4-2 选择公共模板

2. 在本地编写Magento电商应用模板,保存到文件e-business-app.yaml中。上传模 板文件e-business-app.yaml到执行curl命令的服务器的任一路径,例如/home/

paas。

3. 进入服务器中模板文件所在路径,调用创建模板接口,上传Magento电商应用公 共模板作为自己的模板。

curl -k -X POST -H "X-Auth-Token: ${Token}" -F "resource={\"name\": \"aos-magento\",\"description\":

\"aos magento template\",\"version\": \"1.9\"}" -F "[email protected]" -i "$

{AOS_Endpoint}/v2/templates"

您需要指定如下参数。

– Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject- token”的值。

– name:模板名称。

– description:模板描述。

– version:模板版本。

(18)

– archive_content:要上传的模板包。如果执行curl命令时,未进入到模板文 件所在路径,可以在此处加上路径,例如模板文件“e-business-app.yaml”

在“/home/paas”路径下,则命令为archive_content=@/home/paas/e- business-app.yaml

– AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn- north-4.myhuaweicloud.com。

响应消息体:

HTTP/1.1 100 Continue ...

{ "id": "10185add-acde-cc18-b8dd-b3a87a1f484c"

}p

记录模板ID(10185add-acde-cc18-b8dd-b3a87a1f484c)作为后续创建堆栈时 所用的模板。

步骤2 调用查询模板输入接口,查看模板输入,作为后续创建堆栈时需要配置的输入参数的 修改。

curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/templates/${TEMPLATE_ID}/inputs"

您需要指定如下参数。

● Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject- token”的值。

● TEMPLATE_ID:上一步获取的模板ID。

● AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn- north-4.myhuaweicloud.com。

响应消息体:

{ ...

"app-name": { "default": "magento", "description": "应用名称", "immutable": false, "label": "magento", "usednodes": [ "magento", "magento-service"

]

}, "magento-EIP": {

"description": "magento服务对外暴露访问地址", "immutable": false,

"label": "magento", "usednodes": [ "magento-config"

]

}, "magento-EPORT": { "default": 32080,

"description": "magento服务对外监听端口", "immutable": false,

"label": "magento", "type": "integer", "usednodes": [ "magento-config", "magento-service"

]

}, "mysql-database": { "default": "magento",

(19)

"description": "MySQL数据库服务为magento服务创建的database名称", "immutable": false,

"label": "mysql", "usednodes": [ "mysql-conf"

]

}, "mysql-password": { "default": "******",

"description": "MySQL数据库服务密码", "immutable": false,

"label": "mysql", "usednodes": [ "mysql-conf"

]

}, "mysql-port": { "default": 3306,

"description": "MySQL数据库服务监听端口", "immutable": false,

"label": "mysql", "type": "integer"

}, ...

}

在创建堆栈的时候需要填写这些值并最终转化为模板内的属性值,AOS后台在遇到未 填写的字段的时候会使用模板内的默认值填写。本例需要更改magento-EIP和 magento-EPORT的参数值,其余参数保持默认即可。

步骤3 调用创建堆栈接口,创建Magento电子商务系统堆栈。

curl -k -X POST -H "X-Auth-Token: ${Token}" -d '{

"name": "magento-stack-test",

"project_id": "c51567523b744d098a8a81ede51894ac", "template_id": "'"${TEMPLATE_ID}"'",

"force": true,

"cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "namespace": "default",

"inputs_json": {

"magento-EIP": "*.*.78.102", "magento-EPORT": 32080 }, "action_parameters": { "auto_create": true, "timeout": 20

}}' "${AOS_Endpoint}/v2/stacks"

您需要创建一个可用容器集群,包含一个2C4G的可用节点,并且已绑定弹性IP。

您需要指定如下参数。

● Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject- token”的值。

● name:自定义堆栈名称,例如magento-stack-test。

● project_id:项目ID,获取方法可参见获取项目ID。

● cluster_id:集群ID。您可登录CCE控制台,单击“资源管理 > 集群管理”,在集 群详情页获取集群ID。

● namespace:集群下可用的命名空间。您可登录CCE控制台,单击“资源管理 >

命名空间”,获取命名空间名称。

● magento-EIP:节点的弹性IP。您可登录CCE控制台,单击“资源管理 > 节点管 理”,在节点详情页获取弹性IP。

(20)

● magento-EPORT:节点端口,请输入30000-32767之间的整数,请保证集群内唯 一。可保持默认32080。

创建成功的时候会返回堆栈相关的一些信息,为了后续操作,需要记录下堆栈的ID。

{ "force": true,

"guid": "0cec7a8c-5fc1-11e8-a532-0242ac110007", "namespace": "default",

"project_id": "c51567523b744d098a8a81ede51894ac", "cluster_name": "k8s19-lm-do-not-delete",

"cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "domain_id": "b0148a2cb4f347289b477bab429e48e7", "name": "magento-stack-test",

"description": "", "status": "",

"template_id": "10185add-acde-cc18-b8dd-b3a87a1f484c", "previous_template_id": "",

"template_name": "aos-magento", "inputs_json": "..."

...

}

步骤4 调用查询堆栈接口,查看堆栈创建是否成功。

curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/stacks/${STACK_ID}"

您需要指定如下参数。

● Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject- token”的值。

● STACK_ID:上一步获取的堆栈ID。

● AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn- north-4.myhuaweicloud.com。

响应消息体:

{ "force": true,

"guid": "0cec7a8c-5fc1-11e8-a532-0242ac110007", "namespace": "default",

"project_id": "c51567523b744d098a8a81ede51894ac", "cluster_name": "k8s19-lm-do-not-delete",

"cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "domain_id": "b0148a2cb4f347289b477bab429e48e7", "name": "magento-stack-test",

"description": "", "status": "Running",

"template_id": "10185add-acde-cc18-b8dd-b3a87a1f484c", "previous_template_id": "",

"template_name": "aos-magento", "inputs_json":...

}

当返回接口中的status字段为Running状态时表示创建成功。如果创建失败可以通过 subObjectStatuses字段查看错误日志。

步骤5 调用查询堆栈输出接口,查询堆栈的输出。

curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/stacks/${STACK_ID}/outputs"

您需要指定如下参数。

● Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject- token”的值。

● STACK_ID:上一步获取的堆栈ID。

(21)

● AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn- north-4.myhuaweicloud.com。

响应消息体:

{ "outputs": {

"ingress-admin_password": { "value": "******",

"description": "Password of super user."

},

"magento-addr": {

"value": "http://*.*.78.102:32080",

"description": "Access URL for magento service."

},

"magento-admin_username": { "value": "admin",

"description": "Super user name."

} } }

访问magento电子商务系统,在浏览器中访问地址http://magento-EIP:magento- EPORT,例如http://*.*.78.102:32080。

4-3 访问 magento 电子商务系统

----结束

(22)

5 API

5.1 创建模板

功能介绍

通过将本地模板文件上传至服务器的方式来创建模板。

URI

POST /v2/templates

请求消息

● 请求参数

5-1 请求参数

参数 是否必选 参数类型 描述

resource 是 String 模板内容,详情请参见 UploadResource。

archive_conten

t 否 String or

Binary 必须为zip/tar.gz/tgz/yaml/json格 式的文件。

content_type值为yaml和json时,

参数类型为String,值为yaml或 json的字符串。

content_type值为空或file时,参数 类型为Binary,值为文件的二进制 内容。

(23)

5-2 UploadResource 参数

参数 是否必选 参数类型 描述

name 是 String 模板名称。长度为[1,64],由小写 英文字母、数字和短横线(-)组成,

且必须以英文字母开头,同时不能 以短横线结尾。

description 否 String 模板描述。长度为[0,255],中文算 多个字符,不能包含<>()#%&/字 符。

origin_templat

e_url 否 String 源模板的URL。通过URL上传模板 场景需要。包类型必须为“zip/

tar.gz/tgz”,包名需要满足正则表 达式^[A-Za-z0-9][A-Za-z0-9_-]

{0,254}$。

scope 否 String 模板使用范围。默认值为

“domain",且只支持domain。

vendor 否 String 模板提供者。长度为[0,64],中文 算单个字符,不能包含<>()#%&/

字符。

version 是 String 模板版本。长度为[0,24],满足正 则表达式^[a-zA-Z0-9_]+([-.][a- zA-Z0-9]+)*$。

main_file_nam

e 否 String 模板主文件名称,为空的时候默认

为blueprint.yaml。长度[0,255],

如果非空,文件扩展名必须 为.yaml,文件名满足正则表达式

^[a-zA-Z0-9_]+([-.][a-zA- Z0-9]+)*$。

project_id 否 String 模板上传时带有的项目ID

filename 否 String 模板压缩包文件名称,在使用IE浏 览器时需要指定。长度为[0,64]。

dsl_version 否 String 当非空时,上传的模板DSL版本必 须与指定的一致,否则模板上传将 不成功。模板DSL版本,只支持 huaweicloud_tosca_version_1_0和 fusionstage_tosca_version_2_1,

默认为空。

content_type 否 String 模板文件类型。可设置为yaml、

json、file。

说明

两种模板上传场景不可混用,会导致报错。

(24)

5-3 请求消息头

参数 是否必选 参数类型 描述

Content-Type 是 String 该字段内容填为“multipart/

form-data”。

X-Auth-Token 是 String 有效的token(具有op_cred权限的 用户token,短期有效)。在租户 侧必选。

说明

后续的AOS API所含Http头在只传参数(使用json格式)的情况下,Content-Type应为 Application/json。其余字段若无特殊说明,则与此表格一致。

● 请求示例

curl -k -X POST -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -F

'resource={"name": "test-agent-11","description":"aos","version": "1.0.1"}' -F "archive_content=@test- agent-1-1.0.tar.gz" https://aos.cn-north-4.myhuaweicloud.com/v2/templates

响应消息

● 请求成功的响应消息 – 响应参数

5-4 成功响应参数

参数 参数类型 描述

id String 模板ID

– 响应示例

{ "id": "d078e49c-124c-7706-bcbb-81885661f431"

}

● 请求失败的响应消息 – 响应参数

5-5 失败响应参数

参数 参数类型 描述

message String 请求失败的原因

code String 请求失败的原因代码

extend String 请求失败的扩展原因,

保留后续使用

(25)

说明

如果无特殊说明,后续AOS API的错误返回均为此形式。

– 响应示例

{ "message": "Parameters validate err, The name should not be empty.", "code": "02000005",

"extend": ""

}

状态码

● 正常

5-6 状态码

状态码 描述

201 模板创建成功。

● 异常

5-7 状态码

状态码 描述

400 请求参数有误,当前请求无法被服务器解析。除非进行修改,

否则客户端不应重复提交这个请求。

409 因与被请求的资源当前状态之间存在冲突,请求无法完成。

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的处

理。

5.2 查询模板列表

功能介绍

根据提供的参数查询模板列表。

URI

GET /v2/templates

5-8 参数说明

参数 是否必选 描述

name 否 模板名称,适用于根据模板名称查询

模板ID场景。

(26)

参数 是否必选 描述

offset 否 查询起始偏移,默认为0。

limit 否 单次查询总量,和offset必须成对出

现。

dsl_version 否 查询指定DSL版本的模板。

check_used 否 是否检查模板的使用情况,如果为空

默认false。

include_stack 否 值为true时查询解决方案模板,为 false时查询通用模板,为空时查询所 有模板。

请求消息

N/A。

响应消息

● 响应参数

失败响应消息如表5-5所示。

5-9 响应参数

参数 参数类型 描述

[数组元素] Array of objects 数组元素为模板详细信息,详情请参 见表5-10。

5-10 模板详细信息

参数 参数类型 描述

id String 模板ID

name String 模板名称

version String 模板版本

vendor String 模板发布者

description String 模板描述 project_id String 模板所属项目ID template_url String 模板包的存放地址

converge_url String 模板的转化包地址,用于模板预览使 用。

(27)

参数 参数类型 描述

create_at String 模板创建时间 update_at String 模板更新时间

scope String 模板可用范围

● project:项目内可用(现已不支持 新建该范围的模板)

● domain:租户内可用

● public:全局可用(跨租户可用)

domain String 模板所属租户名称

main_file_name String 主文件名,为空使用默认值,为 blueprint.yaml。

need_clutser Boolean 判断模板是否需要CCE集群。当前AOS 的应用都需要部署在CCE集群上。

dsl_version String 模板的DSL版本

is_used Boolean 检查模板是否在使用中(即存在使用此 模板创建的堆栈),true表示在使用 中。

当查询参数check_used为true时,返回 值有该字段

is_new_template Boolean 模板是否是新模板

include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)

元素

5-11 响应消息头

参数 参数类型 描述

Content-Range String 分页信息,items为起始和终止,以及 总数”。具体取值依赖于用户的模板数 量。

示例:items 0-24/66

● 响应示例

[ {

"id": "f9f5839d-73e2-f22b-f20b-fb11bc1abb66", "name": "test-z",

"version": "v1", "vendor": "aos-team", "description": "", "project_id": "",

"template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v1/file_paths/test- staless-container.tar.gz",

"converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

(28)

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v1/file_paths/test-z- v1-converge.tar.gz",

"create_at": "2018-12-16T01:15:39Z", "update_at": "2018-12-16T01:15:41Z", "scope": "domain",

"domain": "aos-team",

"main_file_name": "blueprint.yaml", "need_cluster": true,

"dsl_version": "huaweicloud_tosca_version_", "is_used": true,

"is_new_template": false, "include_stack": false },

{

"id": "fd3f1e6d-cc93-c3c3-d015-f69c3ff3bc63", "name": "test-z",

"version": "v2", "vendor": "aos-team", "description": "", "project_id": "",

"template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/

blueprint.zip",

"converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/test-z- v2-converge.tar.gz",

"create_at": "2018-12-16T04:09:24Z", "update_at": "2018-12-16T04:09:26Z", "scope": "domain",

"domain": "aos-team",

"main_file_name": "blueprint.yaml", "need_cluster": true,

"dsl_version": "huaweicloud_tosca_version_", "is_used": true,

"is_new_template": false, "include_stack": false }

]

状态码

● 正常

5-12 状态码

状态码 描述

200 查询模板列表成功。

● 异常

5-13 状态码

状态码 描述

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的处

理。

(29)

5.3 更新模板

功能介绍

用于更新模板。

须知

只有当未使用该模板创建堆栈之前才能进行更新。

上传方式如下:

● 本地上传,直接传入本地文件的二进制数据。

● 通过URL上传,输入模板文件的URL。

URI

PUT /v2/templates/{template_id}

5-14 参数说明

参数 是否必选 描述

template_id 是 更新的模板id

请求消息

● 请求参数

5-15 请求参数

参数 是否必选 参数类型 描述

resource 是 String 模板内容,详情请参见表

5-2。

archive_cont

ent 否 String or

Binary 必须为zip/tar.gz/tgz/yaml/

json格式的文件。

content_type值为yaml和json 时,参数类型为String,值为 yaml或json的字符串。

content_type值为空或file 时,参数类型为Binary,值为 文件的二进制内容。

● 请求示例

{ "name": "helloworld",

(30)

"description": "helloworld blueprint new", "version": "1.0"

}curl -k -X PUT -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -F

"[email protected]" https://aos.cn-north-4.myhuaweicloud.com/v2/templates/

d078e49c-124c-7706-bcbb-81885661f431

响应消息

● 响应参数

5-16 成功响应参数

参数 参数类型 描述

id String 模板ID

● 响应示例

正确响应示例如下,错误响应示例请参见表5-5。

{ "id": "d078e49c-124c-7706-bcbb-81885661f431"

}

状态码

● 正常

5-17 状态码

状态码 描述

200 模板更新成功

● 异常

5-18 状态码

状态码 描述

400 请求参数有误,当前请求无法被服务器解析。除非进行修

改,否则客户端不应重复提交这个请求。

404 请求的资源不存在。

409 由于和被请求的资源的当前状态之间存在冲突,请求无法完

成。

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的

处理。

(31)

5.4 删除模板

功能介绍

用于删除某个模板。

须知

只有不存在使用该模板创建的堆栈时才能删除。

URI

DELETE /v2/templates/{template_id}

5-19 参数说明

参数 是否必选 描述

template_id 是 模板id

请求消息

N/A。

响应消息

如果删除成功响应消息的响应体为空,仅有http头。

删除失败响应消息如表5-5所示。

状态码

● 正常

5-20 状态码

状态码 描述

204 模板删除成功

● 异常

5-21 状态码

状态码 描述

400 请求参数有误。

(32)

状态码 描述

404 请求的资源不存在。

409 存在使用该模板的堆栈。

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的

处理。

5.5 下载模板

功能介绍

用于下载某个模板。

URI

GET /v2/templates/{template_id}/archive

5-22 参数说明

参数 是否必选 描述

template_id 是 模板id

请求消息

N/A。

响应消息

● 响应参数

5-23 响应消息头

参数 参数类型 描述

Content-Type String 消息体的类型(格式):application/

octet-stream;charset=UTF-8

响应内容:

模板文件内容:

tosca_definitions_version: huaweicloud_tosca_version_1_0 description: Sample template for IaaS resource

inputs:

az:

default: cn-north-4a

description: 可用区##Availability Zone

(33)

type: HuaweiCloud.ECS.AvailabilityZone.Name label: 弹性云服务器##ECS

flavor:

default: s2.large.2

description: 云服务器的规格##ECS specification label: 弹性云服务器##ECS

image:

default: 1189efbf-d48b-46ad-a823-94b942e2a000

description: 云服务器使用的镜像ID##ID of the image used by the ECS type: HuaweiCloud.ECS.Image.Id

label: 弹性云服务器##ECS sshKey-name:

description: ssh密钥对##SSH key pair label: 弹性云服务器##ECS

mycloudserver_rootVolume_volumeType:

description: 系统盘类型##Root Volume Type label: 弹性云服务器##ECS

subnet-cidr:

default: 192.168.1.0/24

description: 子网的CIDR##CIDR of subnet label: 子网##Subnet

subnet-gateway:

default: 192.168.1.1

description: 子网的网关地址##Gateway of subnet label: 子网##Subnet

vm-name:

default: my-cloudserver

description: 云服务器名称##ECS name label: 弹性云服务器##ECS

vpc-cidr:

default: 192.168.0.0/16

description: 虚拟私有云下可用子网范围##Available subnet ranges under VPC label: 虚拟私有云##VPC

node_templates:

mycloudserver:

properties:

availabilityZone:

get_input: az flavor:

get_input: flavor imageId:

get_input: image name:

get_input: vm-name nics:

- subnetId:

get_reference: mysubnet publicIP:

eip:

bandwidth:

shareType: PER size: 1 ipType: 5_bgp sshKeyName:

get_input: sshKey-name vpcId:

get_reference: myvpc rootVolume:

volumeType:

get_input: mycloudserver_rootVolume_volumeType requirements:

- nics.subnetId:

node: mysubnet - vpcId:

node: myvpc

type: HuaweiCloud.ECS.CloudServer mysubnet:

properties:

availabilityZone:

(34)

get_input: az cidr:

get_input: subnet-cidr dnsList:

- 192.168.0.1 - 192.168.0.0 gateway:

get_input: subnet-gateway name: ''

vpcId:

get_reference: myvpc requirements:

- vpcId:

node: myvpc

relationship: HuaweiCloud.Relationships.ContainedIn type: HuaweiCloud.VPC.Subnet

myvpc:

properties:

cidr:

get_input: vpc-cidr name: ''

type: HuaweiCloud.VPC.VPC outputs:

ecs-eip:

value:

get_attribute:

- mycloudserver - floatingIpId ecs-id:

value:

get_attribute:

- mycloudserver - refID

subnet-name:

value:

get_attribute:

- mysubnet - refName vpc-name:

value:

get_attribute:

- myvpc - refName

状态码

● 正常

5-24 状态码

状态码 描述

200 模板下载成功

● 异常

5-25 状态码

状态码 描述

400 请求参数有误,当前请求无法被服务器解析。除非进行修

改,否则客户端不应重复提交这个请求。

(35)

状态码 描述

404 请求的资源不存在。

409 由于和被请求的资源的当前状态之间存在冲突,请求无法完

成。

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的

处理。

5.6 查询模板

功能介绍

用于查询某个模板。

URI

GET /v2/templates/{template_id}

5-26 参数说明

参数 是否必选 描述

template_id 是 模板id

请求消息

N/A。

响应消息

● 响应参数

失败的响应消息如表5-5所示。

5-27 响应参数

参数 参数类型 描述

id String 模板ID

name String 模板名称

version String 模板版本

vendor String 模板发布者

description String 模板描述 project_id String 模板所属项目ID

(36)

参数 参数类型 描述

template_url String 模板包的存放地址 origin_template_

url String 模板包的原始地址

converge_url String 模板的转化包地址,用于模板预览使 用。

create_at String 模板创建时间 update_at String 模板更新时间

scope String 模板可用范围

● project:项目内可用(现已不支持 新建该范围的模板)

● domain:租户内可用

● public:全局可用(跨租户可用)

domain String 模板所属租户名称

main_file_name String 主文件名,为空使用默认值,为 blueprint.yaml。

need_clutser Boolean 判断模板是否需要CCE集群。当前AOS 的应用都需要部署在CCE集群上。

dsl_version String 模板的DSL版本

is_used Boolean 检查模板是否在使用中(即存在使用此 模板创建的堆栈),true表示在使用 中。

is_new_template Boolean 模板是否是新模板

include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)

元素

● 响应示例

{ "id": "fd3f1e6d-cc93-c3c3-d015-f69c3ff3bc63", "name": "test-z",

"version": "v2", "vendor": "aos-team", "description": "", "project_id": "",

"template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/

blueprint.zip",

"converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/

namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/test-z- v2-converge.tar.gz",

"create_at": "2017-12-16T04:09:24Z", "update_at": "2017-12-16T04:09:26Z", "scope": "domain",

"domain": "aos-team",

"main_file_name": "blueprint.yaml", "need_cluster": true,

(37)

"dsl_version": "huaweicloud_tosca_version_"

}

状态码

● 正常

5-28 状态码

状态码 描述

200 查询模板成功

● 异常

5-29 状态码

状态码 描述

400 请求参数有误

404 请求资源不存在

5.7 查询模板输入

功能介绍

用于查询指定模板的输入参数。

URI

GET /v2/templates/{template_id}/inputs

5-30 参数说明

参数 是否必选 描述

template_id 是 模板id

请求消息

N/A。

响应消息

● 响应参数

失败的响应参数如表5-5所示。

(38)

5-31 响应参数

参数 参数类型 描述

[自定义key] Map<String,Obje

ct> key为模板输入参数名称,value为模 板输入参数对应的属性信息,详情请 参见表5-32。

5-32 模板输入参数属性信息字段数据结构说明

参数 参数类型 描述

required Boolean 该参数能否置空,true / false。

default Integer or String or

Float or Boolean 模板内的默认参数。多种类型,根 据type字段选择。

description String 该参数的描述

type String 不同的模板输入参数类型。

● string: 字符串类型

● integer: 整数类型

● boolean: 布尔类型

● enum: 枚举类型,如果是枚举类 型,则输入中必须有constraints 字段内的valid_values字段

● float: 浮点数

● secret: 密钥类型

● password: 密码类型

● ip: IP类型

constraints Object 表示该参数值的限制规则,详情请 参见表5-33。

label String 该参数所属的标签组

advanced Boolean 表示该参数为高级配置,必须要有 默认值,界面显示默认隐藏。

immutable Boolean 表示该参数是否能够被修改

5-33 参数限制结构说明

参数 参数类型 描述

in_range Array of integers 输入值需要大于等于最小值,并小 于等于最大值。

regex String 输入值需要满足正则表达式

(39)

参数 参数类型 描述 valid_values Array of integers/

string/float/boolean 输入值需要符合给定值中的任意一 个

equal Integer or String or

Float or Boolean 输入值需要等于该值 greater_or_equ

al Integer or String or

Float or Boolean 输入值需要大于等于该值 greater_than Integer or String or

Float or Boolean 输入值需要大于该值 less_or_equal Integer or String or

Float or Boolean 输入值需要小于等于该值 less_than Integer or String or

Float or Boolean 输入值需要小于该值

● 响应示例

{ "key1": {

"default": "192.168.12.22:30303/test_yj/frontend:latest", "immutable": false,

"type": "string"

}, "key2": { "default": 2, "immutable": false, "type": "integer"

}, "key3": {

"immutable": true, "type": "string"

}, "key4": { "type": "float", "constraints": {

"greater_or_equal": 0, "greater_than": 0, "less_or_equal": 2, "less_than": 2 }

} }

状态码

● 正常

5-34 状态码

状态码 描述

200 查询模板输入参数成功

● 异常

(40)

5-35 状态码

状态码 描述

400 请求参数有误

404 请求资源不存在

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的处

理。

5.8 获取模板列表

功能介绍

根据提供的参数获取模板列表。

URI

GET /v2.1/templates

5-36 参数说明

参数 是否必选 描述

name 否 模板名称,适用于根据模板名称查询

模板ID场景。

offset 否 查询起始偏移,默认为0。

limit 否 单次查询总量,和offset必须成对出

现。

dsl_version 否 查询指定DSL版本的模板。

check_used 否 是否检查模板的使用情况,如果为空

默认false。

include_stack 否 值为true时查询解决方案模板,为 false时查询通用模板,为空时查询所 有模板。

请求消息

N/A。

响应消息

● 响应参数

失败响应消息如表5-5所示。

(41)

5-37 响应参数

参数 参数类型 描述

templates Array of objects 数组元素为每个模板的所有版本详细 信息,详情请参见表5-38。

total Integer 模板总条数

5-38 templates 字段数据结构说明

参数 参数类型 描述

template Array of objects 数组元素为模板的详细信息,详情请 参见表5-39。

5-39 template 字段数据结构说明

参数 参数类型 描述

id String 模板ID

name String 模板名称

version String 模板版本

vendor String 模板发布者

description String 模板描述

template_url String 模板包的存放地址 create_at String 模板创建时间 update_at String 模板更新时间

scope String 模板可用范围

● project:项目内可用(现已不支持 新建该范围的模板)

● domain:租户内可用

● public:全局可用(跨租户可用)

domain String 模板所属租户名称

need_clutser Boolean 判断模板是否需要CCE集群。当前AOS 的应用都需要部署在CCE集群上。

dsl_version String 模板的DSL版本 is_new_template Boolean 模板是否是新模板

include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)

元素

(42)

参数 参数类型 描述

is_used Boolean 检查模板是否在使用中(即存在使用此 模板创建的堆栈),true表示在使用 中。

5-40 响应消息头

参数 是否必选 参数

类型

取值范围 描述

Content-

Range 否 String 具体取值依赖于

用户的模板数 量。

示例:items 0-24/66

分页信息,items为 起始和终止,以及 总数”。

● 响应示例

{ "templates": [ {

"template": [ {

"id": "74252143-4ca1-7ddb-d585-6be6786d1209", "name": "api-test",

"version": "1.0",

"vendor": "paas_aos_w00417971", "description": "",

"template_url": "",

"create_at": "2020-07-10T07:29:25Z", "update_at": "2020-07-14T11:07:09Z", "scope": "domain",

"domain": "paas_aos_w00417971", "need_cluster": false,

"dsl_version": "", "include_stack": false, "is_new_template": false, "is_used": false

}, {

"id": "34b159d8-cdf2-6764-e97b-8eb45b8e0f5b", "name": "api-test",

"version": "1.1",

"vendor": "paas_aos_w00417971", "description": "",

"template_url": "",

"create_at": "2020-07-14T11:05:36Z", "update_at": "2020-07-14T11:05:36Z", "scope": "domain",

"domain": "paas_aos_w00417971", "need_cluster": false,

"dsl_version": "", "include_stack": false, "is_new_template": false, "is_used": false

} ] }, "total": 2 }

(43)

状态码

● 正常

5-41 状态码

状态码 描述

200 查询模板列表成功。

● 异常

5-42 状态码

状态码 描述

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的处

理。

5.9 创建堆栈

功能介绍

用于创建堆栈。

说明

堆栈的输入由模板和输入参数两部分组成。

● 模板:定义了堆栈的骨架,决定了堆栈内部节点的构造以及节点间的关系,以及每个节点的 属性的值或来源。

● 输入参数:是模板内节点属性值的来源之一,定义在模板的inputs字段下,由模板内的 get_input函数触发。

URI

POST /v2/stacks

请求消息

● 请求参数

5-43 请求参数

参数 是否必选 参数类型 描述

name 是 String 堆栈名称。限制同表5-2的name字 段。

(44)

参数 是否必选 参数类型 描述

project_id 是 String 堆栈所属项目的id,默认为用户token 所属项目,如果填写则必须与用户 token内项目信息一致。

长度[1, 63],由小写字母、数字和中 划线(-)组成,且不能以中划线开头结 尾。

description 否 String 堆栈描述。限制同表5-2的description 字段。

template_i

d 是 String 堆栈使用的模板id,长度[1, 64]。

inputs_json 否 Object 堆栈使用的模板输入参数。

该参数内每个key-value结构对应 inputs下名为key的字段,标明输入值 为value。

如果该处未指明某个key,则使用key 指定的默认值,如果没有默认值则报 错。

示例:"{'template_input_key':

'value'}"

force 否 Boolean 堆栈强制裁剪标识,适用于裁剪场

景。

labels 否 Object 堆栈标签,内部每个key-value表示一 个标签。key/value两个字段长度均为 [1, 64],且满足正则表达式^[a-zA- Z0-9_]+[-.a-zA-Z0-9_]*$。

namespace 否 String 编排CCE资源与应用时需要传入。堆 栈部署的命名空间,如果不传入,默 认使用default。

cluster_id 否 String 编排CCE资源与应用时需要传入。堆 栈所在集群ID。

action_para

meters 否 Object 堆栈创建后自动执行安装生命周期的 配置。限制同表5-44。

5-44 生命周期配置

参数 是否必选 参数类型 描述

failure_stra

tegy 否 String 失败策略,默认DoNothing。取值范 围为DoNothing/Rollback。

auto_create 是 Boolean 默认为true。

(45)

参数 是否必选 参数类型 描述

timeout 否 Integer 生命周期超时时间,单位为分钟,默 认60分钟。取值范围为[0, 1440]

(最多一天,24*60)。

说明

inputs_json参数中输入虚机应用对应属性时,如果不在url字段或name字段中填入合法 url,则会通过name/version/repository字段访问SWR进行模糊查找。在软件仓库内文件较 多的情况下时间效率不高。可行的解决方案是填入url避免模糊查找,或将name/version/

repository填写详细,减少查找范围。

● 推荐的做法:url: http://SWR.url/xxx/file.tgz

● 较好的做法:name: file.tgz version: v1 repository: myProject

● 效率较低的做法: name: file.tgz

● 请求示例

{ "name": "aos-lm-verydows-t1",

"template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "project_id": "10556c2112784111b8bf10512591189e", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "inputs_json": {

"ecsng-image": "192.168.3.88:20202/default/verydows-ecsng:2.1.1", "mysql-image": "192.168.3.88:20202/tangtao/verydows-mysql:5.6.35", "redis-image": "192.168.3.88:20202/default/verydows-redis:4.0.2_passwd", "verydows-image": "192.168.3.88:20202/default/verydows:2.3.1",

"verydows-install-image": "192.168.3.88:20202/default/verydows:2.3.1", "mysql-name": "verydows-mysql-t1"

} }

响应消息

● 响应参数

响应参数是一个堆栈结构或返回消息结构。

– 创建成功时返回堆栈结构。

– 创建失败时返回错误响应结构。

其中,堆栈结构如表3 响应参数所示, 返回错误响应结构如表5-5所示。

5-45 响应参数

参数 参数类型 描述

name String 堆栈名称

guid String 堆栈id

description String 堆栈描述

project_id String 堆栈所属项目的id

domain_id String 堆栈所属租户

template_id String 模板id

(46)

参数 参数类型 描述

template_name String 模板名称

inputs_json String 堆栈使用的模板的输入参

status String 堆栈状态

resource_status String 堆栈资源状态

create_at String 堆栈创建时间

update_at String 堆栈更新时间

force Boolean 堆栈强制裁剪标识,适用

于裁剪场景

labels String 堆栈的标签

cluster_id String 堆栈所在集群ID

cluster_name String 堆栈所在集群名字

namespace String 堆栈所属命名空间

template_version String 堆栈使用的模板版本

dsl_version String 堆栈使用的模板语法版本

● 响应成功示例

{ "force": true,

"guid": "d956ea24-e979-11e7-9764-0255ac103504", "namespace": "default",

"project_id": "c261c106051448479eb7c66549866011", "cluster_name": "test-not-delete",

"cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "domain_id": "ef09dd6cc93f4653b5557181b802ee71", "name": "aos-lm-verydows-t1",

"description": "", "status": "",

"resource_status": "",

"template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "previous_template_id": "",

"template_name": "verydows", "healthy": true,

"healthy_message": "",

"inputs_json": "{\"ecsng-container-port\":80,\"ecsng-image\":\"192.168.3.88:20202/default/

verydows-ecsng:2.1.1\",\"imagePullPolicy\":\"IfNotPresent\",\"mysql-container-port\":3306,\"mysql- database\":\"verydows\",\"mysql-image\":\"192.168.3.88:20202/tangtao/verydows-mysql:5.6.35\",

\"mysql-name\":\"verydows-mysql-t1\",\"mysql-password\":\"******\",\"mysql-port\":13306,\"mysql- root-password\":\"******\",\"mysql-user\":\"verydows\",\"redis-container-port\":6379,\"redis-image\":

\"192.168.3.88:20202/default/verydows-redis:4.0.2_passwd\",\"redis-password\":\"******\",\"redis-port\":

16379,\"verydows-container-port\":80,\"verydows-http-host\":\"\",\"verydows-image\":

\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-install-image\":\"192.168.3.88:20202/

default/verydows:2.3.1\",\"verydows-port\":8088}", "previous_inputs_json": "",

"create_at": "", "update_at": "", "labels": "",

"template_version": "2.0.1",

(47)

"dsl_version": "huaweicloud_tosca_version_1_0"

}

● 响应失败示例

{ "message": "The request body is invalid, please check. Error: The stack name is already existed.", "code": "02030008",

"extend": ""

}

状态码

● 正常

5-46 状态码

状态码 描述

201 堆栈创建成功

● 异常

5-47 状态码

状态码 描述

400 请求参数无效或有不止一个包。

404 模板中定义的包不存在。

500 服务器遇到了一个未曾预料的状况,导致无法完成对请求的处

理。

5.10 删除堆栈

功能介绍

用于删除堆栈。

URI

DELETE /v2/stacks/{stack_id}

5-48 参数说明

参数 是否必选 描述

stack_id 是 堆栈id,长度[1, 64]。

force 否 true/false,是否强制删除。只有在已

经进行过删除操作的情况下,才允许 使用强制删除操作。

數據

表 3-3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信 息,从服务API的 URL中获取。值为 hostname[:port]。 端口缺省时使用默 认的端口,https的 默认端口为443。 否 使用AK/SK认 证时该字段必选。 code.test.comor code.test.com:443 Content-Type 消息体的类型(格 式)。推荐用户使 用默认值 application/json, 有其他取值时会在 具体接口中专门说 明。 是 application/json
表 5-2 UploadResource 参数 参数 是否必选 参数类型 描述 name 是 String 模板名称。长度为[1,64],由小写 英文字母、数字和短横线(-)组成, 且必须以英文字母开头,同时不能 以短横线结尾。 description 否 String 模板描述。长度为[0,255],中文算 多个字符,不能包含&lt;&gt;()#%&amp;/字 符。 origin_templat
表 5-3 请求消息头
表 5-11 响应消息头
+7

參考文獻

相關文件

PRINCIPAIS ESTATÍSTICAS, POR ESCALÕES DE VALOR ACRESCENTADO CENSO – 2002 PRINCIPAL STATISTICS BY CENSUS VALUE ADDED – 2002

PRINCIPAIS ESTATÍSTICAS, POR ESCALÕES DE VALOR ACRESCENTADO CENSO – 2003 PRINCIPAL STATISTICS BY CENSUS VALUE ADDED – 2003

PRINCIPAIS ESTATÍSTICAS, POR ESCALÕES DE VALOR ACRESCENTADO CENSO – 2003 PRINCIPAL STATISTICS BY CENSUS VALUE ADDED – 2003

之主要統計...33 PRINCIPAIS ESTATÍSTICAS DOS PROJECTOS DE OBRAS NOVAS, REALIZADAS NA CONDIÇÃO DE EMPREITEIRO PRINCIPAL, POR ESCALÕES DO VALOR DE PRODUÇÃO CENSO – 2001..

2011年按落成用途之公共及私人工程數目與價值 NÚMERO E VALOR DOS PROJECTOS DE CONSTRUÇÃO PÚBLICA E PRIVADA, POR FINALIDADE EM 2011 NUMBER AND VALUE OF PUBLIC CONSTRUCTION

按工程價值統計之工程主要指標 PRINCIPAIS ESTATÍSTICAS DOS PROJECTOS DE CONSTRUÇÃO, POR ESCALÕES DE VALOR DAS OBRAS PRINCIPAL STATISTICS OF CONSTRUCTION PROJECTS BY VALUE

PRINCIPAIS ESTATÍSTICAS, POR ESCALÕES DE VALOR ACRESCENTADO CENSO – 2003 PRINCIPAL STATISTICS BY CENSUS VALUE ADDED – 2003

16- 按工程價值統計之工程主要指標 PRINCIPAIS ESTATÍSTICAS DOS PROJECTOS DE CONSTRUÇÃO, POR ESCALÕES DE VALOR DAS OBRAS PRINCIPAL STATISTICS OF CONSTRUCTION PROJECTS BY