我有10台机器的AWS实例限制。我有5个跑步。我可以开始启动机器:
$ aws ec2 start-instances --instance-ids i-123456789
---------------------------
| StartInstances |
+-------------------------+
|| StartingInstances ||
|+-----------------------+|
|| InstanceId ||
|+-----------------------+|
|| i-123456789 ||
|+-----------------------+|
||| CurrentState |||
||+--------+------------+||
||| Code | Name |||
||+--------+------------+||
||| 16 | running |||
||+--------+------------+||
||| PreviousState |||
||+--------+------------+||
||| Code | Name |||
||+--------+------------+||
||| 16 | running |||
||+--------+------------+||
,当我开始几次开始进行5次开始的机器时,我会收到消息:发生错误(InstanceLimitExceeded) when calling the StartInstances operation: Your quota allows for 0 more running instance(s). You requested at least 1
奇怪的是因为我不创建新实例 - 所有人都在运行。
停止所有实例后,开始工作。
当我启动时发生了什么?
为已经运行的实例发送StartInstances
命令不会生成错误。它只是返回一个响应:
{
"StartingInstances": [
{
"InstanceId": "i-abcd1234",
"CurrentState": {
"Code": 16,
"Name": "running"
},
"PreviousState": {
"Code": 16,
"Name": "running"
}
}
]
}
所以,启动运行实例时什么都不会发生。
您可能想知道为什么它会给您错误消息。我不知道,但是我怀疑检查配额以确定您是否可以启动实例的逻辑不会先检查请求的实例是否正在运行。它可能查看当前运行的实例数,添加您希望启动的实例数,然后如果总计超过允许的配额。