次のコードがあります。
$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.
ウェイターが古いインスタンス ID を見ている理由がわかりません。これは何とか持続していますか?
他に追加する必要があるものはありますか?