调用StopInstances停止一台或多台运行中(Running)的ECS实例。调用接口成功后,ECS实例先进入停止中(Stopping)状态,最终进入已停止(Stopped)状态。

接口说明

  • 查询ECS实例信息时,如果返回数据中包含{"OperationLocks": {"LockReason" : "security"}},则禁止一切操作。
  • 按量付费实例开启VPC内实例节省停机模式后,您可以通过设置StoppedMode=KeepCharging开启普通停机模式,ECS实例停止后会继续计费,并为您保留ECS实例规格库存和公网IP地址。
  • 支持批量操作,可以通过参数BatchOptimization设置批量操作模式。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String StopInstances

系统规定参数。取值:StopInstances

DryRun Boolean false

是否只预检此次请求。取值范围:

  • true:发送检查请求,不会停止实例。检查项包括是否填写了必需参数、请求格式、实例状态。如果检查不通过,则返回对应错误。如果检查通过,则返回DRYRUN.SUCCESS
    说明 如果参数BatchOptimization被设置为SuccessFirst,对应的DryRun=true的预检结果只会返回DRYRUN.SUCCESS
  • false:发送正常请求,通过检查后直接停止实例。

默认值:false

RegionId String cn-hangzhou

实例所在的地域。您可以调用DescribeRegions查看最新的阿里云地域列表。

ForceStop Boolean false

是否强制关机。取值范围:

  • true:强制关机。相当于典型的断电操作,所有未写入存储设备的缓存数据会丢失。
  • false:正常关机。

默认值:false

StoppedMode String KeepCharging

停止按量付费ECS实例时,设置的停止模式。取值:

  • StopCharging:节省停机模式。有关StopCharging生效的条件,请参见按量付费实例节省停机模式的启用条件章节。
  • KeepCharging:普通停机模式。实例停止后仍继续收费。

默认值:如果您在ECS控制台上开启VPC内实例节省停机模式(更多信息,请参见打开默认启用节省停机模式),并符合开启条件,则默认值为StopCharging。否则,默认值为KeepCharging

BatchOptimization String AllTogether

设置批量操作模式。取值范围:

  • AllTogether:该模式下,如果实例全部停止成功,则返回成功信息;如果任意一个实例校验不通过,则所有实例停止失败,并返回失败信息。
  • SuccessFirst:该模式下,分别停止每个实例,返回结果包含每个实例的操作结果信息。

默认值:AllTogether

InstanceId.N String i-bp67acfmxazb4p****

实例ID。N的取值范围:1~100

返回数据

名称 类型 示例值 描述
RequestId String 1C488B66-B819-4D14-8711-C4EAAA13AC01

请求ID。

InstanceResponses Array of InstanceResponse

由InstanceResposne组成的数组格式,返回每个实例操作的前后状态及操作结果。

InstanceResponse
Code String 200

实例操作结果错误码。返回值200为成功,更多请参见下文错误码列表。

Message String success

实例操作返回错误信息。返回值Success为成功,更多请参见下文错误码列表。

InstanceId String i-bp67acfmxazb4p****

实例ID。

CurrentStatus String Stopping

实例当前状态。

PreviousStatus String Running

实例操作前状态。

示例

请求示例

http(s)://ecs.aliyuncs.com/?Action=StopInstances
&InstanceId.1=i-bp67acfmxazb4p****
&InstanceId.2=i-bp67acfmxazb4p****
&RegionId=cn-hangzhou
&ForceStop=false
&StoppedMode=KeepCharging
$BatchOptimization=SuccessFirst
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<StopInstancesResponse>
    <RequestId>FF53E96D-3F1A-42F0-8373-1C2B39D72D44</RequestId>
    <InstanceResponses>
        <InstanceResponse>
            <Message>success</Message>
            <InstanceId>i-bp67acfmxazb4p****</InstanceId>
            <PreviousStatus>Running</PreviousStatus>
            <CurrentStatus>Stopping</CurrentStatus>
            <Code>200</Code>
        </InstanceResponse>
        <InstanceResponse>
            <Message>success</Message>
            <InstanceId>i-bp67acfmxazb4p****</InstanceId>
            <PreviousStatus>Running</PreviousStatus>
            <CurrentStatus>Stopping</CurrentStatus>
            <Code>200</Code>
        </InstanceResponse>
        <InstanceResponse>
            <Message>The specified InstanceId does not exist.</Message>
            <InstanceId>i-TestID</InstanceId>
            <PreviousStatus/>
            <CurrentStatus/>
            <Code>InvalidInstanceId.NotFound</Code>
        </InstanceResponse>
    </InstanceResponses>
</StopInstancesResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "FF53E96D-3F1A-42F0-8373-1C2B39D72D44",
  "InstanceResponses" : {
    "InstanceResponse" : [ {
      "Message" : "success",
      "InstanceId" : "i-bp67acfmxazb4p****",
      "PreviousStatus" : "Running",
      "CurrentStatus" : "Stopping",
      "Code" : "200"
    }, {
      "Message" : "success",
      "InstanceId" : "i-bp67acfmxazb4p****",
      "PreviousStatus" : "Running",
      "CurrentStatus" : "Stopping",
      "Code" : "200"
    }, {
      "Message" : "The specified InstanceId does not exist.",
      "InstanceId" : "i-TestID",
      "PreviousStatus" : "",
      "CurrentStatus" : "",
      "Code" : "InvalidInstanceId.NotFound"
    } ]
  }
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidParameter.KMSKeyId.CMKNotEnabled The CMK needs to be enabled. 加密云盘设置了 KMSKeyId 后,CMK必须处于启用状态。您可以调用密钥管理服务的 DescribeKey 接口查询指定CMK的相关信息。
400 DRYRUN.SUCCESS This request is a dryrun request with successful result. 您设置了预检此次请求,并且检查通过。
403 Abs.InvalidInstanceIds.MalFormed The specified instanceIds is not valid. 指定的InstanceId参数不合法
403 IncorrectInstanceStatus %s 当前实例的状态不支持此操作。
403 InsufficientBalance Your account does not have enough balance. 账户余额不足,请先充值再操作。
403 InstanceNotReady The specified instance is not ready for use. 该资源目前的状态不支持此操作,请您等待一段时间再进行操作,并确认实例目前状态与操作是否冲突。
404 InvalidInstanceId.NotFound %s 指定的实例不存在,请确认参数 InstanceId 是否正确。
404 InvalidInstanceIds.NotFound The specified InstanceIds does not exist. 指定的 InstanceId 不存在。请检查 InstanceId 参数值是否正确。您可以调用 DescribeInstances 查询指定实例的状态。
404 InvalidInstanceId.NotFound The specified InstanceId does not exist. 指定的实例不存在,请您检查实例ID是否正确。
500 InternalError The request processing has failed due to some unknown error. 内部错误,请重试。

访问错误中心查看更多错误码。