为伸缩组手动添加ECS实例。
接口说明
-
调用该接口前,请确保满足以下条件:
- 伸缩组处于 Active 状态。
- 伸缩组内没有执行中的伸缩活动。
-
加入伸缩组的 ECS 实例或 ECI 实例的限制条件包括: - 必须与伸缩组在同一个地域。 - 必须处于 Running 状态。 - 不能已加入到其他伸缩组中。 - 付费方式为包年包月、按量付费或抢占式实例。 - 如果伸缩组指定 VswitchID,则不支持 Classic 类型的 ECS 实例或 ECI 实例加入伸缩组,也不支持其他 VPC 的 ECS 实例或 ECI 实例加入伸缩组。 - 如果伸缩组没有指定 VswitchID,则不支持 VPC 类型的 ECS 实例或 ECI 实例加入伸缩组。
-
加入伸缩组的托管实例的限制条件包括:
- 必须与伸缩组在同一个地域。
- 只能将未加入伸缩组的托管实例加入到 ECS 类型伸缩组中。
- 托管实例不支持配置生命周期挂钩、关联到负载均衡和健康检查功能。
- 托管实例加入 ECS 类型伸缩组后,该伸缩组不会管理托管实例的生命周期。
- 托管实例仅支持手动添加到伸缩组或手动从伸缩组移出,移出后托管实例并不会被释放。
-
使用该接口需注意以下事项:
- 当伸缩组没有伸缩活动正在执行时,该接口可以绕过冷却时间(Cooldown)直接执行。
- 调用该接口返回成功,只是表示弹性伸缩服务接受了该接口调用的请求,伸缩活动可以执行,但不代表伸缩活动能够执行成功。您需要通过返回的 ScalingActivityId 查看该伸缩活动的执行状态。
- 如果该接口指定的实例数加上当前伸缩组的实例数(Total Capacity)大于最大值(MaxSize),则接口调用失败。
- 通过该接口手动添加的 ECS 实例、ECI 实例或托管实例不与伸缩组生效的伸缩配置进行关联。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
|---|---|---|---|---|
| ess:AttachInstances | update | *ScalingGroup acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId} |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| ScalingGroupId | string | 是 | 伸缩组的 ID。 | asg-bp18p2yfxow2dloq**** |
| Entrusted | boolean | 否 | 将已经存在的实例手动添加到伸缩组时,是否将该实例的生命周期托管给伸缩组。取值范围:
说明
包年包月实例、托管实例和伸缩组中节省停机实例均不支持设置该参数项。
默认值:false。 | false |
| InstanceId | array | 否 | InstanceId.N 为待添加 ECS 实例、ECI 实例、托管实例或者伸缩组中处于节省停机状态实例的 ID。N 的取值范围:1~20。 举例如下所示:
说明
一次调用请求中仅支持处理一种类型的实例。
| |
| string | 否 | InstanceId.N 为待添加 ECS 实例、ECI 实例、托管实例或者伸缩组中处于节省停机状态实例的 ID。N 的取值范围:1~20。 举例如下所示:
说明
一次调用请求中仅支持处理一种类型的实例。
| i-28wt4**** | |
| LoadBalancerWeight | array | 否 | ECS 实例或 ECI 实例作为负载均衡后端服务器时的权重。 说明
托管实例和伸缩组中节省停机实例均不支持设置该参数项。
| |
| integer | 否 | LoadBalancerWeight.N 为 ECS 实例或 ECI 实例作为负载均衡实例后端服务器时的权重,N 的取值范围:1~20,该参数的取值范围:1~100。 说明
托管实例和伸缩组中节省停机实例均不支持设置该参数项。
默认值:50。 | 50 | |
| LifecycleHook | boolean | 否 | 伸缩组添加实例时,是否触发扩容生命周期挂钩。取值范围:
说明
托管实例和伸缩组中节省停机实例均不支持设置该参数项。
默认值:false。 | false |
| RegionId | string | 否 | 伸缩组所属的地域 ID。 | cn-qingdao |
| ClientToken | string | 否 | 保证请求幂等性。 从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持 ASCII 字符,且不能超过 64 个字符。更多信息,请参见如何保证幂等性。 | 123e4567-e89b-12d3-a456-42665544**** |
| IgnoreInvalidInstance | boolean | 否 | 向伸缩组添加一批实例时,是否忽略其中无效的实例。取值范围:
默认值:false。 | false |
返回参数
示例
正常返回示例
JSON格式
{
"ScalingActivityId": "asa-bp1crxor24s28xf1****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}错误码
| HTTP status code | 错误码 | 错误信息 |
|---|---|---|
| 500 | InternalError | The request processing has failed due to some unknown error, exception or failure. |
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 |
|---|---|---|
| 2025-02-25 | OpenAPI 描述信息更新、OpenAPI 错误码发生变更 | 查看变更详情 |
| 2025-01-08 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
| HttpCode | 错误码 | 错误信息 | 描述 |
|---|---|---|---|
| 404 | InvalidScalingGroupId.NotFound | The specified scaling group does not exist. | 指定的伸缩组在该账号下不存在。 |
| 403 | Forbidden.Unauthorized | A required authorization for the specified action is not supplied. | 您并未向弹性伸缩完整授权 OpenAPI 接口。 |
| 400 | IncorrectScalingGroupStatus | The current status of the specified scaling group does not support this action. | 指定的伸缩组未处于 Active 状态。 |
| 404 | InvalidInstanceId.NotFound | Instance "XXX" does not exist. | 指定的 ECS 实例或 ECI 实例在该账号下不存在。 |
| 400 | InvalidInstanceId. RegionMismatch | Instance "XXX" and the specified scaling group are not in the same Region. | 指定的 ECS 实例或 ECI 实例与伸缩组所属的地域不匹配。 |
| 400 | InvalidInstanceId.InstanceTypeMismatch | Instance "XXX" and existing Active scaling configurations have different instance types. | 指定的 ECS 实例或 ECI 实例与伸缩配置的实例规格不匹配。 |
| 400 | IncorrectInstanceStatus | The current status of instance "XXX" does not support this action. | 指定的 ECS 实例或 ECI 实例未处于 Running 状态。 |
| 400 | InvalidInstanceId. NetworkTypeMismatch | The network type of instance "XXX" does not support this action. | ECS 实例或 ECI 实例的网络类型与伸缩组的网络类型不匹配。 |
| 400 | InvalidInstanceId.VPCMismatch | Instance "XXX" and the specified scaling group are not in the same VPC. | 指定的伸缩组与添加的 ECS 实例或 ECI 实例不在同一个 VPC 当中。 |
| 400 | InvalidInstanceId.InUse | Instance "XXX" is already attached to another scaling group. | 指定的 ECS 实例或 ECI 实例已加入其它伸缩组。 |
| 400 | ScalingActivityInProgress | You cannot delete a scaling group or launch a new scaling activity while there is a scaling activity in progress for the specified scaling group. | 指定的伸缩组有伸缩活动正在进行。 |
| 400 | IncorrectLoadBalancerStatus | The current status of the specified load balancer does not support this action. | 指定的伸缩组的负载均衡实例未处于 Active 状态。 |
| 400 | IncorrectLoadBalancerHealthCheck | The current health check type of specified load balancer does not support this action. | 指定的伸缩组关联的负载均衡实例未开启健康检查。 |
| 400 | InvalidLoadBalancerId.IncorrectInstanceNetworkType | The network type of the instance in specified load balancer does not support this action. | 指定的负载均衡实例含有的 ECS 实例或 ECI 实例的网络类型与伸缩组的网络类型不匹配。 |
| 400 | InvalidLoadBalancerId.VPCMismatch | The specified virtual switch and the instance in specified load balancer are not in the same VPC. | 指定的伸缩组的负载均衡实例含有的 ECS 实例或 ECI 实例与 VSwitchId 不在同一个 VPC 当中。 |
| 400 | IncorrectDBInstanceStatus | The current status of DB instance "XXX" does not support this action. | 指定的伸缩组的 RDS 实例未处于 Running 状态。 |
| 400 | QuotaExceeded.DBInstanceSecurityIP | Security IP quota exceeded in DB instance "XXX". | 指定的伸缩组的 RDS 实例访问白名单的 IP 个数达到上限。 |
| 400 | QuotaExceeded.SecurityGroupInstance | Instance quota exceeded in the specified security group. | 指定的安全组已添加的 ECS 实例或 ECI 实例个数达到上限。 |
| 400 | IncorrectCapacity.MaxSize | To attach the instances, the total capacity will be greater than the MaxSize. | 加入的 ECS 实例数或 ECI 实例数使得 Total Capacity 超过 MaxSize。 |
