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

InstanceId.N RepeatList i-bp67acfmxazb4p****

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

RegionId String cn-hangzhou

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

DryRun Boolean false

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

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

默认值:false

ForceStop Boolean false

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

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

默认值:false

StoppedMode String KeepCharging

停止按量付费ECS实例后,是否继续计费。取值:

  • StopCharging:停止计费。有关StopCharging生效的条件,请参见按量付费实例停机不收费的停机不收费开启条件章节。
  • KeepCharging:继续计费。

默认值:如果您在ECS控制台上开启了VPC类型实例默认停机不收费(详情请参见开启按量付费实例停机不收费),并符合开启条件,则默认为StopCharging。否则,默认为KeepCharging

BatchOptimization String AllTogether

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

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

默认值:AllTogether

返回数据

名称 类型 示例值 描述
InstanceResponses Array of InstanceResponse

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

InstanceResponse
Code String 200

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

CurrentStatus String Stopping

实例当前状态。

InstanceId String i-bp67acfmxazb4p****

实例ID。

Message String success

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

PreviousStatus String Running

实例操作前状态。

RequestId String 1C488B66-B819-4D14-8711-C4EAAA13AC01

请求ID。

示例

请求示例

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

正常返回示例

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></PreviousStatus>
                  <CurrentStatus></CurrentStatus>
                  <Code>InvalidInstanceId.NotFound</Code>
            </InstanceResponse>
      </InstanceResponses>
</StopInstancesResponse>

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 错误码 错误信息 描述
404 InvalidInstanceId.NotFound %s 指定的实例不存在,请确认参数InstanceId是否正确。
403 IncorrectInstanceStatus %s 当前实例的状态不支持此操作。
500 InternalError The request processing has failed due to some unknown error. 内部错误,请重试。如果多次尝试失败,请提交工单。
404 InvalidInstanceId.NotFound The specified InstanceId does not exist. 指定的实例不存在,请您检查实例ID是否正确。
403 InsufficientBalance Your account does not have enough balance. 账户余额不足,请先充值再操作。
403 InstanceNotReady The specified instance is not ready for use. 该资源目前的状态不支持此操作,请您等待一段时间再进行操作,并确认实例目前状态与操作是否冲突。

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