AWS开发工具包EC2 - " DescribeInstances"例外,跳过列表中的实例

时间:2016-12-11 09:26:08

标签: php amazon-web-services exception amazon-ec2 aws-sdk

我有一个在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

1 个答案:

答案 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);