У меня есть следующий код:
$result = $ec2->runInstances(array(
// ImageId is required
'ImageId' => $image,
// MinCount is required
'MinCount' => 1,
// MaxCount is required
'MaxCount' => 1,
'KeyName' => $key,
'SecurityGroupIds' => array($sg),
'InstanceType' => $type,
'Placement' => array(
'AvailabilityZone' => $az,
),
'Monitoring' => array(
// Enabled is required
'Enabled' => false,
),
'SubnetId' => $subnet,
'PrivateIpAddress' => $ip,
'ClientToken' => 'string',
'AdditionalInfo' => 'string',
));
$instanceIds = $result->getPath('Instances/*/InstanceId');
$ec2->waitUntilInstanceRunning(array(
'InstanceIds' => $instanceIds,
));
это работало без проблем в первый раз, когда я запустил его. после первоначального запуска я остановил экземпляр с консоли EC2. Теперь я получаю следующую ошибку каждый раз, когда я пытаюсь создать новый экземпляр.
A resource entered into an invalid state of "terminated" while waiting with the "InstanceRunning" waiter.
Я не понимаю, почему официант смотрит на старый идентификатор экземпляра, это как-то сохраняется?
Есть ли что-то еще, что мне нужно добавить?
Решено это. это была ошибка с моей стороны. Я устанавливал 'ClientToken' => 'string'
который, в свою очередь, всегда будет пытаться запросить ранее созданный экземпляр, потому что ‘строка’ является уникальным идентификатором.
Других решений пока нет …