API 参考
文档版本 27
发布日期 2020-11-20
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
目 录
1 使用前必读... 1
1.1 概述... 1
1.2 调用说明...1
1.3 终端节点...1
1.4 约束与限制... 1
1.5 基本概念...2
2 API 概览... 4
3 如何调用 API...5
3.1 构造请求...5
3.2 认证鉴权...9
3.3 返回结果... 10
3.4 获取项目 ID...11
4 快速入门...13
4.1 创建弹性伸缩组... 13
5 API...15
5.1 弹性伸缩组... 15
5.1.1 创建弹性伸缩组...15
5.1.2 查询弹性伸缩组列表... 22
5.1.3 查询弹性伸缩组详情... 28
5.1.4 修改弹性伸缩组...33
5.1.5 删除弹性伸缩组...41
5.1.6 启用或停止弹性伸缩组...43
5.2 弹性伸缩配置...44
5.2.1 创建弹性伸缩配置... 45
5.2.2 查询弹性伸缩配置列表...56
5.2.3 查询弹性伸缩配置详情...62
5.2.4 删除弹性伸缩配置... 67
5.2.5 批量删除弹性伸缩配置...69
5.3 弹性伸缩实例...71
5.3.1 查询弹性伸缩组中的实例列表...71
5.3.2 移出弹性伸缩组实例... 75
5.3.3 批量操作实例... 77
5.4 弹性伸缩策略...80
5.4.1 创建弹性伸缩策略... 80
5.4.2 创建弹性伸缩策略(V2 版本)...85
5.4.3 修改弹性伸缩策略... 90
5.4.4 修改弹性伸缩策略(V2 版本)...96
5.4.5 查询弹性伸缩策略列表... 101
5.4.6 查询弹性伸缩策略列表(V2 版本)...106
5.4.7 查询弹性伸缩策略全量列表(V2 版本)... 112
5.4.8 查询弹性伸缩策略详情... 120
5.4.9 查询弹性伸缩策略详情(V2 版本)...124
5.4.10 执行或启用或停止弹性伸缩策略...128
5.4.11 删除弹性伸缩策略...130
5.4.12 批量操作弹性伸缩策略... 132
5.5 伸缩策略执行日志... 134
5.5.1 查询策略执行日志... 134
5.6 伸缩活动日志... 139
5.6.1 查询伸缩活动日志... 139
5.6.2 查询伸缩活动日志(V2 版本)... 143
5.7 配额... 148
5.7.1 查询配额... 148
5.7.2 查询弹性伸缩策略和伸缩实例配额...151
5.8 通知... 154
5.8.1 配置伸缩组通知... 154
5.8.2 查询伸缩组通知列表...157
5.8.3 删除伸缩组通知... 159
5.9 生命周期挂钩... 161
5.9.1 创建生命周期挂钩... 161
5.9.2 查询生命周期挂钩列表... 165
5.9.3 查询生命周期挂钩详情... 167
5.9.4 修改生命周期挂钩... 170
5.9.5 伸缩实例生命周期回调... 173
5.9.6 查询伸缩实例挂起信息... 176
5.9.7 删除生命周期挂钩... 178
5.10 标签管理... 180
5.10.1 查询标签... 180
5.10.2 查询资源标签... 182
5.10.3 创建或删除标签... 185
5.10.4 查询资源实例... 187
5.11 弹性伸缩 API 管理... 193
5.11.1 查询 API 版本信息...193
5.11.2 查询指定 API 版本信息... 195
6 应用示例... 199
6.1 示例 1:创建伸缩配置...199
6.2 示例 2:创建伸缩组... 201
6.3 示例 3:启用伸缩组... 205
6.4 示例 4:创建伸缩策略...207
6.5 示例 5:批量操作实例...210
7 权限策略和授权项...214
7.1 策略及授权项说明... 214
7.2 弹性伸缩组... 215
7.3 弹性伸缩配置... 216
7.4 弹性伸缩实例... 217
7.5 弹性伸缩策略... 217
7.6 伸缩策略执行日志... 219
7.7 伸缩活动日志... 219
7.8 配额... 219
7.9 通知... 220
7.10 生命周期挂钩...220
7.11 标签管理... 221
A 附录...222
A.1 弹性伸缩监控指标说明... 222
A.2 错误码...224
B 修订记录... 253
1 使用前必读
1.1 概述
欢迎使用弹性伸缩(Auto Scaling)。弹性伸缩是根据用户的业务需求,通过策略自动 调整其业务资源(弹性云服务器和带宽资源)的服务。您可以根据业务需求自行定义 伸缩策略,从而降低人为反复调整资源以应对业务变化和负载高峰的工作量,帮您节 约资源和人力运维成本。您可以使用本文档提供的API对伸缩组等资源进行相关操作,
如创建、删除、修改等。支持的全部操作请参见API概览。
在调用弹性伸缩API之前,请确保已经充分了解弹性伸缩相关概念,详细信息请参见产 品介绍。
1.2 调用说明
弹性伸缩提供了REST(Representational State Transfer)风格API,支持您通过 HTTPS请求调用,调用方法请参见如何调用API。
同时弹性伸缩还提供多种编程语言的SDK供您使用,SDK的使用方法请参见https://
developer.huaweicloud.com/sdk?AS。
1.3 终端节点
终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您 可以从地区和终端节点中查询弹性伸缩服务的终端节点。
1.4 约束与限制
● 您能创建的伸缩组和伸缩配置数量与配额有关系,具体请参见弹性伸缩的配额是 什么。
● 更细的限制请参见具体API的说明。
1.5 基本概念
● 帐号
用户注册时的帐号,帐号对其所拥有的资源及云服务具有完全的访问权限,可以 重置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号安全,建 议您不要直接使用帐号进行日常管理工作,而是创建用户并使用他们进行日常管 理工作。
● 用户
由帐号在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的获取及企业项目特性的详细信息,请参见《企业管理用户指 南》。
2 API 概览
通过使用弹性伸缩所提供的接口,您可以完整的使用弹性伸缩的所有功能,例如创建 伸缩组。弹性伸缩支持的接口见表2-1。
表2-1 弹性伸缩接口说明
子类型 说明
弹性伸缩组 实现伸缩组的创建、查询、修改、删除等操作。
弹性伸缩配 置
实现伸缩配置的创建、查询、删除等操作。
弹性伸缩实 例
实现伸缩实例的查询、移出伸缩组等操作。
弹性伸缩策 略
实现伸缩策略的创建、查询、修改、删除等操作。
伸缩策略执 行日志
查询伸缩策略执行的历史记录。
伸缩活动日 志
查询伸缩活动日志。
配额 查询指定租户的弹性伸缩组、伸缩配置、伸缩策略和伸缩实例的配额 总数及已使用配额数。
通知 提供配置伸缩组通知、查询伸缩组通知列表和删除伸缩组通知功能。
生命周期挂 钩
提供创建、查询、修改和删除生命周期挂钩等功能。
标签管理 提供查询租户或资源标签、创建或删除标签和查询资源实例的功能。
弹性伸缩API
管理 提供查询弹性伸缩API版本信息的功能。
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不同,您可以从地区和终端节点获取。
例如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条数据。
例如您需要获取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-1.myhuaweicloud.com/v3/auth/tokens
请求消息头
附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。
详细的公共请求消息头字段请参见表3-3。
表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认证”。
对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添 加消息头后的请求如下所示。
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
请求消息体(可选)
该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中 Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中 文,则中文字符必须为UTF-8编码。
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。
对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说 明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中
username
为用户名,domainname
为用户所属的帐号名称,********
为用户登录密 码,xxxxxxxxxxxxxxxxxx
为project的名称,如“cn-north-1”,您可以从地区和终端 节点获取。说明
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认证调用请求。
● 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接口获取。
云服务存在两种部署方式:项目级服务和全局级服务。其中:
● 项目级服务需要获取项目级别的Token,此时请求body中auth.scope的取值为 project。
● 全局级服务需要获取全局级别的Token,此时请求body中auth.scope的取值为 domain。
调用本服务API需要项目级别的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-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json
X-Auth-Token: ABCDEFJ....
您还可以通过这个视频教程了解如何使用Token认证:https://
bbs.huaweicloud.com/videos/101333。
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。
图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表示错误描述信息。
3.4 获取项目 ID
操作场景
在调用接口的时候,部分URL中需要填入项目ID,所以需要获取到项目ID。有如下两 种获取方式:
● 调用API获取项目ID
● 从控制台获取项目ID
调用 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": "project_name",
"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"
} }
从控制台获取项目 ID
从控制台获取项目ID的步骤如下:
1. 登录管理控制台。
2. 鼠标悬停在右上角的用户名,选择下拉列表中的“我的凭证”。
在“API凭证”页面的项目列表中查看项目ID。
图3-3 查看项目 ID
4 快速入门
4.1 创建弹性伸缩组
本节通过调用一系列AS的API来创建弹性伸缩组。
说明
通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token 缓存,避免频繁调用。
涉及 API
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加
“X-Auth-Token”到业务接口请求消息头中。
● IAM获取token的API
● AS创建弹性伸缩组的API
操作步骤
1. Token认证,具体操作请参考认证鉴权。
2. 获取项目ID(project_id),具体操作请参考获取项目ID。
3. 在Request Header中增加“Content-Type”键,值为“application/json”。
4. 在Request Header中增加“X-Auth-Token”键,值为1获取到的token。
5. 发送“POST https://AS的Endpoint/v1/{project_id}/scaling_group”,project_id 为2获取到的项目ID。
6. 在Request Body中传入参数如下:
{ "scaling_group_name": "GroupNameTest",//伸缩组名称(必填String)
"scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440",//伸缩配置ID(非必填 String,但启动伸缩组时组内必有伸缩配置)
"desire_instance_number": 0,//期望实例数(非必填Integer)
"min_instance_number": 0,//最小实例数(非必填Integer)
"max_instance_number": 0,//最大实例数(非必填Integer)
"cool_down_time": 200,//冷却时间(非必填Integer)
"health_periodic_audit_method": "NOVA_AUDIT",//伸缩组实例健康检查方式(非必填String)
"health_periodic_audit_time": 5,//伸缩组实例健康检查周期(非必填Integer)
"instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE",//伸缩组实例移除策略(非必填String)
"vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a",//VPC信息(必填String)
"networks": [ {
"id": "3cd35bca-5a10-416f-8994-f79169559870"
}
]//子网信息(必填列表数据结构)
}
请求响应成功后,返回scaling_group_id。表示弹性伸缩组创建成功。
若请求失败,则会返回错误码及对应的错误信息说明,详细请参考错误码。
7. 根据获取到的scaling_group_id,可对弹性伸缩组进行查询、修改、删除等操作。
5 API
5.1 弹性伸缩组
5.1.1 创建弹性伸缩组
功能介绍
伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单 位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负 载均衡等信息。
● 默认最多可以创建10个伸缩组。
● 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负 载均衡监听器。
● 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的 监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全 组规则进行操作。
调试
您可以在API Explorer中调试该接口。
URI
POST /autoscaling-api/v1/{project_id}/scaling_group
表5-1 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID
请求消息
● 请求参数
表5-2 请求参数
参数 是否必
选
参数类 型
描述
scaling_group_
name 是 String 伸缩组名称(1-64个字符),只能包含中 文、字母、数字、下划线或中划线。
scaling_config
uration_id 否 String 伸缩配置ID,通过查询弹性伸缩配置列表 接口获取,请参考查询弹性伸缩配置列 表。
desire_instance
_number 否 Integer 期望实例数量,默认值为最小实例数。
最小实例数≤期望实例数≤最大实例数。
min_instance_
number 否 Integer 最小实例数量,默认值为0。
max_instance_
number 否 Integer 最大实例数量,默认值为0。
cool_down_tim
e 否 Integer 冷却时间,取值范围0-86400,默认为 300,单位是秒。
在每次伸缩活动完成之后,系统开始计算 冷却时间。伸缩组在冷却时间内,会拒绝 由告警策略触发的伸缩活动,其他类型的 伸缩策略(如定时策略和周期策略)及手 动触发的伸缩活动不受限制。
lb_listener_id 否 String 弹性负载均衡(经典型)监听器ID,最多 支持绑定6个负载均衡监听器,多个负载 均衡监听器ID以逗号分隔。获取监听器ID 的方法请参考查询负载均衡器列表。
该字段与lbaas_listeners互斥。
lbaas_listeners 否 Array oflbaas_l istener sobjects
弹性负载均衡器(增强型)信息,最多支 持绑定6个负载均衡。列表数据结构请参 考表5-3。获取增强型负载均衡器的信息 请参考查询后端云服务器组。
该字段与lb_listener_id互斥。
available_zone
s 否 Array
ofstrings
可用区信息。弹性伸缩活动中自动添加的 云服务器会被创建在指定的可用区中。如 果没有指定可用区,会由系统自动指定可 用区。详情请参考地区和终端节点。
参数 是否必 选
参数类 型
描述
networks 是 Array ofnetwo rksobjects
网络信息,最多支持选择5个子网,传入 的第一个子网默认作为云服务器的主网 卡。获取子网信息请参考查询子网列表。
数据结构信息请参考表5-4。
security_group
s 否 Array
ofsecurit y_grou psobjects
安全组信息,仅支持选择1个安全组。获 取安全组信息请参考查询安全组列表。数 据结构信息请参考表5-7。
当伸缩配置和伸缩组同时指定安全组时,
将以伸缩配置中的安全组为准;当伸缩配 置和伸缩组都没有指定安全组时,增加的 弹性云服务器将使用默认安全组。为了使 用灵活性更高,推荐在伸缩配置中指定安 全组。
vpc_id 是 String 虚拟私有云(VPC)信息,获取VPC信息 具体操作请参考查询VPC列表。
health_periodic
_audit_method 否 String 伸缩组实例健康检查方式:ELB_AUDIT和 NOVA_AUDIT。当伸缩组设置负载均衡 时,默认为ELB_AUDIT;否则默认为 NOVA_AUDIT。
● ELB_AUDIT:负载均衡健康检查方 式,在有监听器的伸缩组中有效。
● NOVA_AUDIT:云服务器健康检查方 式,是弹性伸缩自带的健康检查方 式。
health_periodic
_audit_time 否 Integer 伸缩组实例的健康检查周期,可设置为 1、5、15、60、180(分钟),若不设置 该参数,默认为5。
若设置为0,可以实现10秒级健康检查。
health_periodic _audit_grace_p eriod
否 Integer 伸缩组实例健康状况检查宽限期,取值范 围0-86400,单位是秒,默认为600。
当实例加入伸缩组并且进入已启用状态 后,健康状况检查宽限期才会启动,伸缩 组会等健康状况检查宽限期结束后才检查 实例的运行状况。
当伸缩组实例健康检查方式为ELB_AUDIT 时,该参数生效。
参数 是否必 选
参数类 型
描述
instance_termi
nate_policy 否 String 伸缩组实例移除策略:
● OLD_CONFIG_OLD_INSTANCE(默 认):从“较早创建的配置”创建的 实例中选择较早创建的实例进行优先 移除。
● OLD_CONFIG_NEW_INSTANCE:从
“较早创建的配置”创建的实例中选 择较晚创建的实例进行优先移除。
● OLD_INSTANCE:较早创建的实例被 优先移除。
● NEW_INSTANCE:较晚创建的实例将 被优先移除。
notifications 否 Array ofstrings
通知方式:
EMAIL为发送邮件通知。
该通知方式已经被废除,建议给弹性伸缩 组配置通知功能。请参考通知。
delete_publicip 否 Boolea
n 配置删除云服务器时是否删除云服务器绑 定的弹性IP。取值为true或false,默认为 false。
● true:删除云服务器时,会同时删除 绑定在云服务器上的弹性IP。当弹性IP 的计费方式为包年包月时,不会被删 除。
● false:删除云服务器时,仅解绑定在 云服务器上的弹性IP,不删除弹性IP。
delete_volume 否 Boolea
n 配置删除云服务器时是否删除云服务器绑 定的数据盘。取值为true或false,默认为 false。
● true:删除云服务器时,会同时删除 绑定在云服务器上的数据盘。当数据 盘的计费方式为包年包月时,不会被 删除。
● false:删除云服务器时,仅解绑定在 云服务器上的数据盘,不删除数据 盘。
参数 是否必 选
参数类 型
描述
enterprise_proj
ect_id 否 String 企业项目ID,用于指定伸缩组归属的企业 项目。
● 取值为0或无该值,表示属于default 企业项目。
● 取值为UUID,表示属于该UUID对应 的企业项目,如何获取企业项目ID,
请参考查询企业项目列表。
当伸缩组配置企业项目时,由该伸缩组创 建的弹性云服务器将归属于该企业项目。
否则将使用默认企业项目。
说明
关于企业项目特性的详细信息,请参见企业项 目管理。
multi_az_priori
ty_policy 否 String 伸缩组扩缩容时目标AZ选择的优先级策 略:
● EQUILIBRIUM_DISTRIBUTE(默 认):均衡分布,云服务器扩缩容时 优先保证available_zones列表中各AZ 下虚拟机数量均衡,当无法在目标AZ 下完成虚拟机扩容时,按照
PICK_FIRST原则选择其他可用AZ。
● PICK_FIRST:选择优先,虚拟机扩缩 容时目标AZ的选择按照
available_zones列表的顺序进行优先 级排序。
description 否 String 伸缩组描述(1-256个字符)。
表5-3 lbaas_listeners 字段数据结构说明
参数 是否必
选
参数类 型
描述
pool_id 是 String 后端云服务器组ID
protocol_port 是 Integer 后端协议号,指后端云服务器监听的端 口,取值范围[1, 65535]。
weight 是 Integer 权重,指后端云服务器经分发得到的请 求数量的比例,取值范围[0, 100]。
表5-4 networks 字段数据结构说明
参数 是否必
选
参数类 型
描述
id 是 String 子网的网络ID。
ipv6_enable 否 Boolea
n 是否启用IPv6。
true:标识此网卡已启用ipv6。
false:标识此网卡未启用ipv6。默认取 值为false。
ipv6_bandwidt
h 否 ipv6_b
andwi dthobject
绑定的IPv6共享带宽。默认为空,表示 未绑定IPv6的共享带宽。
allowed_addre
ss_pairs 否 Array ofallowe d_addr ess_pa irsobjects
是否开启源/目的检查开关。
表5-5 ipv6_bandwidth 字段数据结构说明
参数 是否必
选
参数类 型
描述
id 是 String IPv6共享带宽的ID
表5-6 allowed_address_pairs 字段数据结构说明
参数 是否必
选
参数类 型
描述
ip_address 否 String 是否开启源/目的检查开关。
默认是开启,不允许置空。
● 关闭:1.1.1.1/0
● 开启:除“1.1.1.1/0”以外的其余值 均按开启处理
表5-7 security_groups 字段数据结构说明
参数 是否必
选
参数类 型
描述
id 是 String 安全组ID
● 请求样例
示例为创建一个满足下述要求的伸缩组:
– 伸缩组名称为GroupNameTest。
– 伸缩配置ID为47683a91-93ee-462a-a7d7-484c006f4440。
– 虚拟私有云ID为a8327883-6b07-4497-9c61-68d03ee193a,网络ID为 3cd35bca-5a10-416f-8994-f79169559870。
– 最大实例数为10,期望实例数为0,最小实例数为0。
– 健康检查方式为云服务器健康检查。
– 设置具体企业项目。
– 伸缩组扩缩容时目标AZ选择的优先级策略为PICK_FIRST(选择优先)。
请求样例可参考如下:
POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group { "scaling_group_name": "GroupNameTest",
"scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440", "desire_instance_number": 0,
"min_instance_number": 0, "max_instance_number": 10,
"health_periodic_audit_method": "NOVA_AUDIT", "vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a", "available_zones": ["XXXa","XXXb"],
"networks": [ {
"id": "3cd35bca-5a10-416f-8994-f79169559870"
} ],
"enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "multi_az_priority_policy": "PICK_FIRST"
}
响应消息
● 响应参数
表5-8 响应参数
参数 参数类型 描述
scaling_group_
id String 伸缩组ID。
● 响应样例
{ "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
}
返回值
● 正常 200
● 异常
返回值 说明
400 Bad Request 服务器未能处理请求。
401 Unauthorized 被请求的页面需要用户名和密码。
403 Forbidden 对被请求的页面访问禁止。
404 Not Found 服务器无法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被允许。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。
407 Proxy Authentication
Required 用户必须首先使用代理服务器进行验证,这
样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 由于冲突,请求无法被完成。
500 Internal Server Error 请求未完成。服务异常。
501 Not Implemented 请求未完成。服务器不支持所请求的功能。
502 Bad Gateway 请求未完成。服务器从上游服务器收到一个 无效的响应。
503 Service Unavailable 请求未完成。系统暂时异常。
504 Gateway Timeout 网关超时。
错误码
请参考错误码。
5.1.2 查询弹性伸缩组列表
功能介绍
根据输入条件过滤查询弹性伸缩组列表。查询结果分页显示。
● 可根据伸缩组名称,伸缩配置ID,伸缩组状态,企业项目ID,起始行号,记录条 数进行条件过滤查询。
● 若不加过滤条件默认最多查询租户下20条伸缩组信息。
调试
您可以在API Explorer中调试该接口。
URI
GET /autoscaling-api/v1/{project_id}/scaling_group 说明
可以在URI后面用‘?’和‘&’添加不同的查询条件组合。支持参数说明中所有非必选参数过 滤,请参考请求样例。
表5-9 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID scaling_group_nam
e 否 String 伸缩组名称。
支持模糊匹配。
scaling_configuratio
n_id 否 String 伸缩配置ID,通过查询弹性伸缩配
置列表接口获取,请参考查询弹性 伸缩配置列表。
scaling_group_statu
s 否 String 伸缩组状态,取值如下:
● INSERVICE:正常状态
● PAUSED:停用状态
● ERROR:异常状态
● DELETING:删除中
● FREEZED:已冻结
start_number 否 Integer 查询的起始行号,默认为0。最小 值为0,最大值没有限制。
limit 否 Integer 查询的记录条数,默认为20。取值
范围为:0~100。
enterprise_project_i
d 否 String 企业项目ID,当传入
all_granted_eps时表示查询该用户 所有授权的企业项目下的伸缩组列 表,如何获取企业项目ID,请参考 查询企业项目列表。
说明华为云帐号和拥有全局权限的IAM用 户可以查询该用户所有伸缩组列表。
授予部分企业项目的IAM用户,如果 拥有超过100个企业项目,则只能返回 有权限的前100个企业项目对应的伸缩 组列表。
请求消息
● 请求参数 无
● 请求样例
示例为查询满足条件“伸缩组名称为as-group-test且伸缩配置ID为 1d281494-6085-4579-b817-c1f813be835f”的伸缩组列表。
GET https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group?scaling_group_name=as-group- test&scaling_configuration_id=1d281494-6085-4579-b817-c1f813be835f
响应消息
● 响应参数
表5-10 响应参数
参数 参数类型 描述
total_number Integer 总记录数。
start_number Integer 查询的开始记录号。
limit Integer 查询记录数。
scaling_groups Array of
scaling_groups objects
伸缩组列表。
表5-11 scaling_groups 字段数据结构说明
参数 参数类型 描述
scaling_group_name String 伸缩组名称。
scaling_group_id String 伸缩组ID。
scaling_group_statu
s String 伸缩组状态。
scaling_configuratio
n_id String 伸缩配置ID。
scaling_configuratio
n_name String 伸缩配置名称。
current_instance_nu
mber Integer 伸缩组中当前实例数。
desire_instance_nu
mber Integer 伸缩组中期望实例数。
min_instance_numb
er Integer 伸缩组中最小实例数。
max_instance_numb
er Integer 伸缩组中最大实例数。
cool_down_time Integer 冷却时间,单位是秒。
参数 参数类型 描述
lb_listener_id String 经典型负载均衡监听器ID,多 个负载均衡监听器ID以逗号分 隔。
lbaas_listeners Array of
lbaas_listeners objects
增强型负载均衡器信息,详情 请见表 lbaas_listeners字段数 据结构说明。
available_zones Array of strings 可用区信息。
networks Array of networks
objects 网络信息,详情请见表5-13 security_groups Array of
security_groups objects
安全组信息,详情请见表5-16
create_time String 创建伸缩组时间,遵循UTC时 间。
vpc_id String 伸缩组所在的VPC ID。
detail String 伸缩组详情。当伸缩活动失败
时,在此处记录错误信息。
is_scaling Boolean 伸缩组伸缩标志。
health_periodic_aud
it_method String 健康检查方式。
health_periodic_aud
it_time Integer 健康检查的间隔时间。
health_periodic_aud
it_grace_period Integer 健康状况检查宽限期。
instance_terminate_
policy String 移除策略。
notifications Array of strings 通知方式:
EMAIL为发送邮件通知。
该通知方式已经被废除,建议 给弹性伸缩组配置通知功能。
请参考通知。
delete_publicip Boolean 删除云服务器是否删除云服务 器绑定的弹性IP。
delete_volume Boolean 删除云服务器是否删除云服务 器绑定的数据盘。
cloud_location_id String 该参数为预留字段。
enterprise_project_i
d String 企业项目ID
参数 参数类型 描述
activity_type String 伸缩组活动类型。
multi_az_priority_po
licy String 伸缩组扩缩容时目标AZ选择的
优先级策略。
description String 伸缩组描述。
表5-12 lbaas_listeners 字段数据结构说明
参数 参数类型 描述
listener_id String 监听器ID
pool_id String 后端云服务器组ID
protocol_port Integer 后端协议号,指后端云服务 器监听的端口。
weight Integer 权重,指后端云服务器经分
发得到的请求数量的比例。
表5-13 networks 字段数据结构说明
参数 参数类型 描述
id String 子网的网络ID。
ipv6_enable Boolean 是否启用IPv6。取值为true 时,标识此网卡已启用 ipv6。默认取值为false。
ipv6_bandwidth ipv6_bandwidth
object 绑定的IPv6共享带宽,默认 为空,表示不绑定IPv6的共 享带宽。
allowed_address_pairs Array of
allowed_address_p airs objects
是否开启源/目的检查开关。
表5-14 ipv6_bandwidth 字段数据结构说明
参数 参数类型 描述
id String IPv6共享带宽的ID。
表5-15 allowed_address_pairs 字段数据结构说明
参数 参数类型 描述
ip_address String 是否开启源/目的检查开关。
默认是开启,不允许置空。
● 关闭:1.1.1.1/0
● 开启:除“1.1.1.1/0”以外的 其余值均按开启处理
表5-16 security_groups 字段数据结构说明
参数 参数类型 描述
id String 安全组ID
● 响应样例
{ "limit": 20, "scaling_groups": [ {
"networks": [ {
"id": "a8327883-6b07-4497-9c61-68d03ee193a", "ipv6_enable": true,
"ipv6_bandwidth":
{
"id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5"
} } ],
"available_zones": [ "XXXa", "XXXb"
],
"detail": null,
"scaling_group_name": "as-group-test",
"scaling_group_id": "77a7a397-7d2f-4e79-9da9-6a35e2709150", "scaling_group_status": "INSERVICE",
"scaling_configuration_id": "1d281494-6085-4579-b817-c1f813be835f", "scaling_configuration_name": "healthCheck",
"current_instance_number": 0, "desire_instance_number": 1, "min_instance_number": 0, "max_instance_number": 500, "cool_down_time": 300,
"lb_listener_id": "f06c0112570743b51c0e8fbe1f235bab", "security_groups": [
{
"id": "8a4b1d5b-0054-419f-84b1-5c8a59ebc829"
} ],
"create_time": "2015-07-23T02:46:29Z",
"vpc_id": "863ccae2-ee85-4d27-bc5b-3ba2a198a9e2", "health_periodic_audit_method": "ELB_AUDIT", "health_periodic_audit_time": 5,
"health_periodic_audit_grace_period": 600,
"instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": false,
"delete_publicip": false,
"enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
"multi_az_priority_policy": "PICK_FIRST"
} ],
"total_number": 1, "start_number": 0 }
返回值
● 正常 200
● 异常
返回值 说明
400 Bad Request 服务器未能处理请求。
401 Unauthorized 被请求的页面需要用户名和密码。
403 Forbidden 对被请求的页面访问禁止。
404 Not Found 服务器无法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被允许。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。
407 Proxy Authentication
Required 用户必须首先使用代理服务器进行验证,
这样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 由于冲突,请求无法被完成。
500 Internal Server Error 请求未完成。服务异常。
501 Not Implemented 请求未完成。服务器不支持所请求的功 能。
502 Bad Gateway 请求未完成。服务器从上游服务器收到一 个无效的响应。
503 Service Unavailable 请求未完成。系统暂时异常。
504 Gateway Timeout 网关超时。
错误码
请参考错误码。
5.1.3 查询弹性伸缩组详情
功能介绍
根据伸缩组ID查询指定弹性伸缩组详情。
调试
您可以在API Explorer中调试该接口。
URI
GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
表5-17 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID
scaling_group_id 是 String 伸缩组ID
请求消息
● 请求参数 无
● 请求样例
示例为查询ID为d4e50321-3777-4135-97f8-9f5e9714a4b0的伸缩组详情。
GET https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group/
d4e50321-3777-4135-97f8-9f5e9714a4b0
响应消息
● 响应参数
表5-18 响应参数
参数 参数类型 描述
scaling_group scaling_groups object 伸缩组详情。
表5-19 scaling_groups 字段数据结构说明
参数 参数类型 描述
scaling_group_name String 伸缩组名称。
scaling_group_id String 伸缩组ID。
scaling_group_statu
s String 伸缩组状态。
scaling_configuratio
n_id String 伸缩配置ID。
scaling_configuratio
n_name String 伸缩配置名称。
参数 参数类型 描述 current_instance_nu
mber Integer 伸缩组中当前实例数。
desire_instance_nu
mber Integer 伸缩组中期望实例数。
min_instance_numb
er Integer 伸缩组中最小实例数。
max_instance_numb
er Integer 伸缩组中最大实例数。
cool_down_time Integer 冷却时间,单位是秒。
lb_listener_id String 经典型负载均衡监听器ID,多 个负载均衡监听器ID以逗号分 隔。
lbaas_listeners Array of
lbaas_listeners objects
增强型负载均衡器信息,详情 请见表 lbaas_listeners字段数 据结构说明。
available_zones Array of strings 可用区信息。
networks Array of networks
objects 网络信息,详情请见表5-13 security_groups Array of
security_groups objects
安全组信息,详情请见表5-16
create_time String 创建伸缩组时间,遵循UTC时 间。
vpc_id String 伸缩组所在的VPC ID。
detail String 伸缩组详情。当伸缩活动失败
时,在此处记录错误信息。
is_scaling Boolean 伸缩组伸缩标志。
health_periodic_aud
it_method String 健康检查方式。
health_periodic_aud
it_time Integer 健康检查的间隔时间。
health_periodic_aud
it_grace_period Integer 健康状况检查宽限期。
instance_terminate_
policy String 移除策略。
参数 参数类型 描述 notifications Array of strings 通知方式:
EMAIL为发送邮件通知。
该通知方式已经被废除,建议 给弹性伸缩组配置通知功能。
请参考通知。
delete_publicip Boolean 删除云服务器是否删除云服务 器绑定的弹性IP。
delete_volume Boolean 删除云服务器是否删除云服务 器绑定的数据盘。
cloud_location_id String 该参数为预留字段。
enterprise_project_i
d String 企业项目ID
activity_type String 伸缩组活动类型。
multi_az_priority_po
licy String 伸缩组扩缩容时目标AZ选择的
优先级策略。
description String 伸缩组描述。
表5-20 networks 字段数据结构说明
参数 参数类型 描述
id String 子网的网络ID。
ipv6_enable Boolean 是否启用IPv6。取值为true 时,标识此网卡已启用 ipv6。默认取值为false。
ipv6_bandwidth ipv6_bandwidth
object 绑定的IPv6共享带宽,默认 为空,表示不绑定IPv6的共 享带宽。
allowed_address_pairs Array of
allowed_address_p airs objects
是否开启源/目的检查开关。
表5-21 ipv6_bandwidth 字段数据结构说明
参数 参数类型 描述
id String IPv6共享带宽的ID。
表5-22 allowed_address_pairs 字段数据结构说明
参数 参数类型 描述
ip_address String 是否开启源/目的检查开关。
默认是开启,不允许置空。
● 关闭:1.1.1.1/0
● 开启:除“1.1.1.1/0”以外的 其余值均按开启处理
● 响应样例
{ "scaling_group": { "networks": [ {
"id": " a8327883-6b07-4497-9c61-68d03ee193a ", "ipv6_enable": true,
"ipv6_bandwidth":
{
"id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5"
} } ],
"available_zones": [ "XXXa", "XXXb"
],
"detail": null,
"scaling_group_name": "api_gateway_modify",
"scaling_group_id": "d4e50321-3777-4135-97f8-9f5e9714a4b0", "scaling_group_status": "INSERVICE",
"scaling_configuration_id": "53579851-3841-418d-a97b-9cecdb663a90", "scaling_configuration_name": "press",
"current_instance_number": 7, "desire_instance_number": 8, "min_instance_number": 0, "max_instance_number": 100, "cool_down_time": 900, "lb_listener_id": null, "security_groups": [ {
"id": "23b7b999-0a30-4b48-ae8f-ee201a88a6ab"
} ],
"create_time": "2015-09-01T08:36:10Z",
"vpc_id": "3e22f934-800d-4bb4-a588-0b9a76108190", "health_periodic_audit_method": "NOVA_AUDIT", "health_periodic_audit_time": 5,
"health_periodic_audit_grace_period": 600,
"instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": true,
"delete_publicip": false, "notifications": null,
"enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "activity_type": "MODIFY_ELB",
"multi_az_priority_policy": "PICK_FIRST"
} }
返回值
● 正常 200
● 异常
返回值 说明
400 Bad Request 服务器未能处理请求。
401 Unauthorized 被请求的页面需要用户名和密码。
403 Forbidden 对被请求的页面访问禁止。
404 Not Found 服务器无法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被允许。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。
407 Proxy Authentication
Required 用户必须首先使用代理服务器进行验证,
这样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 由于冲突,请求无法被完成。
500 Internal Server Error 请求未完成。服务异常。
501 Not Implemented 请求未完成。服务器不支持所请求的功 能。
502 Bad Gateway 请求未完成。服务器从上游服务器收到一 个无效的响应。
503 Service Unavailable 请求未完成。系统暂时异常。
504 Gateway Timeout 网关超时。
错误码
请参考错误码。
5.1.4 修改弹性伸缩组
功能介绍
修改一个指定弹性伸缩组中的信息。
● 更换伸缩组的伸缩配置,伸缩组中已经存在的使用之前伸缩配置创建的云服务器 不受影响。
● 伸缩组为没有正在进行的伸缩活动时,可以修改伸缩组的子网、可用区和负载均 衡配置。
● 当伸缩组的期望实例数改变时,会触发伸缩活动加入或移出实例。期望实例数必 须大于或等于最小实例数,必须小于或等于最大实例数。
调试
您可以在API Explorer中调试该接口。
URI
PUT /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
表5-23 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID
scaling_group_id 是 String 伸缩组ID
请求消息
● 请求参数
表5-24 请求参数
参数 是否必
选
参数类 型
描述
scaling_group_name 否 String 伸缩组名称(1-64个字符),只能包 含中文、字母、数字、下划线或中 划线。
desire_instance_numb
er 否 Intege
r 期望实例数量。
最小实例数≤期望实例数≤最大实例 数。
min_instance_number 否 Intege
r 最小实例数量。
max_instance_number 否 Intege
r 最大实例数量,大于等于最小实例 数。
cool_down_time 否 Intege
r 冷却时间,取值范围0-86400,默 认为300,单位是秒。
available_zones 否 Array ofstrings
可用区信息。弹性伸缩活动中自动 添加的云服务器会被创建在指定的 可用区中。如果没有指定可用区,
会由系统自动指定可用区。
详情请参考地区和终端节点。
仅当伸缩组中无伸缩活动时,才可 以修改可用区配置。
参数 是否必 选
参数类 型
描述
networks 否 Array ofnetwo rksobject s
网络信息,最多支持选择5个子 网,传入的第一个子网默认作为云 服务器的主网卡。获取子网信息请 参考查询子网列表。数据结构信息 请参考表5-26。
仅当同时满足以下条件时,才可以 修改:
● 伸缩组中无伸缩活动
● 实例数为0
● 伸缩组为非启用状态 security_groups 否 Array
ofsecuri ty_gro upsobject s
安全组信息,仅支持选择1个安全 组。获取安全组信息请参考查询安 全组列表。数据结构信息请参考表 5-29。
当伸缩配置和伸缩组同时指定安全 组时,将以伸缩配置中的安全组为 准;当伸缩配置和伸缩组都没有指 定安全组时,增加的弹性云服务器 将使用默认安全组。为了使用灵活 性更高,推荐在伸缩配置中指定安 全组。仅当同时满足以下条件时,
才可以修改:
● 伸缩组中无伸缩活动
● 实例数为0
● 伸缩组为非启用状态
lb_listener_id 否 String 弹性负载均衡(经典型)监听器 ID,最多支持绑定6个负载均衡监 听器,多个负载均衡监听器ID以逗 号分隔。获取监听器ID的方法请参 考查询负载均衡器列表。
仅当同时满足以下条件时,才可以 修改:
● 伸缩组中无伸缩活动 lbaas_listeners 否 Array
oflbaas_
listen ersobject s
弹性负载均衡器(增强型)信息,
最多支持绑定6个负载均衡。列表 数据结构请参考表5-25。获取增强 型负载均衡器的信息请参考查询后 端云服务器组。
参数 是否必 选
参数类 型
描述
health_periodic_audit_
method 否 String 伸缩组实例健康检查方式:
ELB_AUDIT和NOVA_AUDIT。当 伸缩组设置负载均衡时,默认为 ELB_AUDIT;否则默认为 NOVA_AUDIT。
● ELB_AUDIT:负载均衡健康检 查方式,在有监听器的伸缩组 中有效。
● NOVA_AUDIT:云服务器健康 检查方式,是弹性伸缩自带的 健康检查方式。
health_periodic_audit_
time 否 Intege
r 伸缩组实例健康检查周期(分 钟):1、5、15、60、180。
若设置为0,可以实现10秒级健康 检查。
instance_terminate_p
olicy 否 String 伸缩组实例移除策略:
● OLD_CONFIG_OLD_INSTANCE
(默认):从“较早创建的配 置”创建的实例中选择较早创 建的实例进行优先移除。
● OLD_CONFIG_NEW_INSTANC E:从“较早创建的配置”创建 的实例中选择较晚创建的实例 进行优先移除。
● OLD_INSTANCE:较早创建的 实例被优先移除。
● NEW_INSTANCE:较晚创建的 实例将被优先移除。
health_periodic_audit_
grace_period 否 Intege
r 伸缩组实例健康状况检查宽限期,
取值范围0-86400,单位是秒,默 认为600。
当实例加入伸缩组并且进入已启用 状态后,健康状况检查宽限期才会 启动,伸缩组会等健康状况检查宽 限期结束后才检查实例的运行状 况。
当伸缩组实例健康检查方式为 ELB_AUDIT时,该参数生效。
scaling_configuration_
id 否 String 伸缩配置ID,通过查询弹性伸缩配
置列表接口获取,请参考查询弹性 伸缩配置列表。
参数 是否必 选
参数类 型
描述
notifications 否 Array ofstrings
通知方式:
EMAIL为发送邮件通知。
该通知方式已经被废除,建议给弹 性伸缩组配置通知功能。请参考通 知。
delete_publicip 否 Boole
an 配置删除云服务器是否删除云服务 器绑定的弹性IP。如果选择不删 除,则系统仅做解绑定操作,保留 弹性IP资源。
● true:删除云服务器时会同时删 除绑定在云服务器上的弹性IP。
当弹性IP的计费方式为包年包月 时,不会被删除。
● false:删除云服务器时,仅解 绑定在云服务器上的弹性IP,不 删除弹性IP。
delete_volume 否 Boole
an 配置删除云服务器时是否删除云服 务器绑定的数据盘。取值为true或 false,默认为false。
● true:删除云服务器时,会同时 删除绑定在云服务器上的数据 盘。当数据盘的计费方式为包 年包月时,不会被删除。
● false:删除云服务器时,仅解 绑定在云服务器上的数据盘,
不删除数据盘。
enterprise_project_id 否 String 企业项目ID,用于指定伸缩组归属 的企业项目。
● 取值为0或无该值,表示属于 default企业项目。
● 取值为UUID,表示属于该UUID 对应的企业项目,如何获取企 业项目ID,请参考查询企业项 目列表。
当伸缩组配置企业项目时,由该伸 缩组创建的弹性云服务器将归属于 该企业项目。否则将使用默认企业 项目。
说明
关于企业项目特性的详细信息,请参 见企业项目管理。
参数 是否必 选
参数类 型
描述
multi_az_priority_polic
y 否 String 伸缩组扩缩容时目标AZ选择的优先
级策略:
● EQUILIBRIUM_DISTRIBUTE
(默认):均衡分布,虚拟机 扩缩容时优先保证
available_zones列表中各AZ下 虚拟机数量均衡,当无法在目 标AZ下完成虚拟机扩容时,按 照PICK_FIRST原则选择其他可 用AZ。
● PICK_FIRST:选择优先,虚拟 机扩缩容时目标AZ的选择按照 available_zones列表的顺序进 行优先级排序。
description 否 String 伸缩组描述(1-256个字符)。
表5-25 lbaas_listeners 字段数据结构说明
参数 是否必选 参数类型 描述
pool_id 是 String 后端云服务器组ID。
仅当同时满足以下条件时,
才可以修改:
● 伸缩组中无伸缩活动 protocol_port 是 Integer 后端协议号,指后端云服务
器监听的端口,取值范围[1, 65535]。
weight 是 Integer 权重,指后端云服务器经分
发得到的请求数量的比例,
取值范围[0, 100]。
表5-26 networks 字段数据结构说明
参数 是否必
选 参数类
型 描述
id 是 String 子网的网络ID。
ipv6_enable 否 Boolea
n 是否启用IPv6。
true:标识此网卡已启用ipv6。
false:标识此网卡未启用ipv6。默认取 值为false。
参数 是否必 选
参数类 型
描述
ipv6_bandwidt
h 否 ipv6_b
andwi dthobject
绑定的IPv6共享带宽。默认为空,表示 未绑定IPv6的共享带宽。
allowed_addre
ss_pairs 否 Array ofallowe d_addr ess_pa irsobjects
是否开启源/目的检查开关。
表5-27 ipv6_bandwidth 字段数据结构说明
参数 是否必
选
参数类 型
描述
id 是 String IPv6共享带宽的ID
表5-28 allowed_address_pairs 字段数据结构说明
参数 参数类型 描述
ip_address String 是否开启源/目的检查开关。
默认是开启,不允许置空。
● 关闭:1.1.1.1/0
● 开启:除“1.1.1.1/0”以外的 其余值均按开启处理
表5-29 security_groups 字段数据结构说明
参数 是否必选 参数类型 描述
id 是 String 安全组ID。
● 请求样例
本示例展示了修改ID为a8327883-6b07-4497-9c61-68d03ee193a1的伸缩组,修 改其名称、伸缩配置、企业项目、期望实例数、最小实例数、最大实例数和冷却 时间等参数。
PUT https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group/
a8327883-6b07-4497-9c61-68d03ee193a1
{ "scaling_group_name": "group_1",
"scaling_configuration_id": "f8327883-6a07-4497-9a61-68c03e8e72a2", "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "desire_instance_number": 1,
"min_instance_number": 1, "max_instance_number": 3, "cool_down_time": 200,
"multi_az_priority_policy": "PICK_FIRST"
}
响应消息
● 响应参数
表5-30 响应参数
参数 参数类型 描述
scaling_group_id String 伸缩组ID。
● 响应样例
{ "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
}
返回值
● 正常 200
● 异常
返回值 说明
400 Bad Request 服务器未能处理请求。
401 Unauthorized 被请求的页面需要用户名和密码。
403 Forbidden 对被请求的页面访问禁止。
404 Not Found 服务器无法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被允许。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。
407 Proxy Authentication
Required 用户必须首先使用代理服务器进行验证,这
样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 由于冲突,请求无法被完成。
500 Internal Server Error 请求未完成。服务异常。
501 Not Implemented 请求未完成。服务器不支持所请求的功能。
502 Bad Gateway 请求未完成。服务器从上游服务器收到一个 无效的响应。
返回值 说明
503 Service Unavailable 请求未完成。系统暂时异常。
504 Gateway Timeout 网关超时。
错误码
请参考错误码。
5.1.5 删除弹性伸缩组
功能介绍
删除一个指定弹性伸缩组。
● force_delete属性表示如果伸缩组存在ECS实例或正在进行伸缩活动,是否强制删 除伸缩组并移出和释放ECS实例。默认值为no,表示不强制删除伸缩组。
● 如果force_delete的值为no,必须满足以下两个条件,才能删除伸缩组:
– 条件一:伸缩组没有正在进行的伸缩活动。
– 条件二:伸缩组当前的ECS实例数量(current_instance_number)为0。
● 如果force_delete的值为yes,伸缩组会被置于DELETING状态,拒绝接收新的伸缩 活动请求,然后等待已有的伸缩活动完成,最后将伸缩组内所有ECS实例移出伸缩 组(用户手动添加的ECS实例会被移出伸缩组,弹性伸缩自动创建的ECS实例会被 自动删除)并删除伸缩组。
调试
您可以在API Explorer中调试该接口。
URI
DELETE /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
表5-31 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID。
scaling_group_id 是 String 伸缩组ID。
force_delete 否 String 是否强制删除伸缩
组。取值如下:
● no:不强制删 除伸缩组,默认 为no。
● yes:强制删除 伸缩组。