我有一个在DB中保存的实例ID列表。 定期检查可以验证针对AWS的ID。 问题是,如果其中一个实例不存在,那么我得到Exception并且整个请求失败(没有ID返回)。
有没有办法跳过丢失的ID并获取除特定instanceID之外的所有数据?
我的代码:
$requesltArray = ['Filters' => $this->_Filters, 'InstanceIds' => $this->_InstanceIDs];
try {
$reservations = $this->_EC2Client->DescribeInstances($requesltArray)->toArray();
} catch (Ec2Exception $exc) {
echo $exc;
return [];
}
导致异常:
aws sdk执行错误" DescribeInstances" InvalidInstanceID.NotFound
答案 0 :(得分:0)
根据您拥有的实例数量,您可能会考虑为每个ID执行DescribeInstances请求。
$reservations = [];
foreach($this->_InstanceIDs as $anInstance){
try {
$requesltArray = ['Filters' => $this->_Filters, 'InstanceIds' => $anInstance];
$aReservation = $this->_EC2Client->DescribeInstances($requesltArray)->toArray();
$reservations[] = $aReservation;
} catch (Ec2Exception $exc) {
// --> Delete the instance from your database?
continue;
}
}
dd($reservations);