调用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

实例操作前状态。

示例

请求示例

https://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. 您设置了预检此次请求,并且检查通过。
500 InternalError The request processing has failed due to some unknown error. 内部错误,请重试。如果多次尝试失败,请提交工单。
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是否正确。

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