Stops one or more Elastic Compute Service (ECS) instances that are in the Running state. After the operation is called, the state of the instances changes to Stopping and then to Stopped.
Usage notes
- If the response contains
{"OperationLocks": {"LockReason" : "security"}}
when you query the information of an instance, the instance is locked for security reasons and all operations are prohibited on it. - If the economical mode is enabled for pay-as-you-go instances, you can set
StoppedMode
to KeepCharging to enable the standard mode for the instances. Then, after the instances are stopped in standard mode, you continue to be charged for them, their instance type resources and public IP addresses are retained. - Batch operations are supported. You can use the
BatchOptimization
parameter to specify the batch operation mode.
Debugging
Request parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
Action | String | Yes | StopInstances | The operation that you want to perform. Set the value to StopInstances. |
DryRun | Boolean | No | false | Specifies whether to perform a dry run. Valid values:
Default value: false. |
RegionId | String | Yes | cn-hangzhou | The region ID of the instance. You can call the DescribeRegions operation to query the most recent region list. |
ForceStop | Boolean | No | false | Specifies whether to forcefully stop the instance. Valid values:
Default value: false. |
StoppedMode | String | No | KeepCharging | The stop mode of the pay-as-you-go instance. Valid values:
Default value: If the conditions for enabling the economical mode are met and you have enabled this mode in the ECS console, the default value is StopCharging. For more information, see the "Enable economical mode" section in |
BatchOptimization | String | No | AllTogether | The batch operation mode. Valid values:
Default value: AllTogether. |
InstanceId.N | String | Yes | i-bp67acfmxazb4p**** | The ID of instance N. Valid values of N: 1 to 100. |
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
RequestId | String | 1C488B66-B819-4D14-8711-C4EAAA13AC01 | The ID of the request. |
InstanceResponses | Array of InstanceResponse | Details about instance-specific responses, which contain the status of each instance before and after the operation is called and the results of the operation. |
|
InstanceResponse | |||
Code | String | 200 | The error code returned for the instance. The return value 200 indicates success. For more information, see the "Error codes" section in this topic. |
Message | String | success | The error message returned for the instance. The return value Success indicates operation success. For more information, see the "Error codes" section in this topic. |
InstanceId | String | i-bp67acfmxazb4p**** | The ID of the instance. |
CurrentStatus | String | Stopping | The current state of the instance. |
PreviousStatus | String | Running | The state of the instance before the operation was called. |
Examples
Sample requests
http(s)://ecs.aliyuncs.com/?Action=StopInstances
&InstanceId.1=i-bp67acfmxazb4p****
&InstanceId.2=i-bp67acfmxazb4p****
&RegionId=cn-hangzhou
&ForceStop=false
&StoppedMode=KeepCharging
$BatchOptimization=SuccessFirst
&Common request parameters
Sample success responses
XML
format
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
format
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"
} ]
}
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | InvalidParameter.KMSKeyId.CMKNotEnabled | The CMK needs to be enabled. | The error message returned because the customer master key (CMK) is not enabled when a KMS key ID is specified for a disk. You can call the DescribeKey operation of KMS to query the information about the specified CMK. |
400 | DRYRUN.SUCCESS | This request is a dryrun request with successful result. | The error message returned because a dry run is performed and the request passes the dry run. |
403 | Abs.InvalidInstanceIds.MalFormed | The specified instanceIds is not valid. | The error message returned because the specified InstanceId.N parameter is invalid. |
403 | IncorrectInstanceStatus | %s | The error message returned because the operation is not supported while the instance is in the current state. |
403 | InsufficientBalance | Your account does not have enough balance. | The error message returned because your account balance is insufficient. Add funds to your account and try again. |
403 | InstanceNotReady | The specified instance is not ready for use. | The error message returned because the operation is not supported while the resource is in the current state. Try again later. |
404 | InvalidInstanceId.NotFound | %s | The error message returned because the specified instance does not exist. Check whether the specified instance ID is valid. |
404 | InvalidInstanceIds.NotFound | The specified InstanceIds does not exist. | The error message returned because the specified instance ID does not exist. Check whether the specified instance ID is valid. You can call the DescribeInstances operation to query the status of specific instances. |
404 | InvalidInstanceId.NotFound | The specified InstanceId does not exist. | The error message returned because the specified instance does not exist. Check whether the specified instance ID is valid. |
500 | InternalError | The request processing has failed due to some unknown error. | The error message returned because an internal error has occurred. Try again later. |
For a list of error codes, see Service error codes.