2016-12-11 13 views
0

DBにインスタンスIDのリストがあります。 定期チェックでは、AWSに対してこれらのIDを検証します。 問題は、インスタンスのいずれかが存在しない場合、例外が発生し、要求全体が失敗する(IDの戻り値なし)ということです。AWS SDK EC2 - "DescribeInstances"例外、リスト内のインスタンスをスキップ

欠落しているIDをスキップして、特定のinstanceID以外のすべてのデータを戻す方法はありますか?

マイコード:例外で

$requesltArray = ['Filters' => $this->_Filters, 'InstanceIds' => $this->_InstanceIDs]; 

try { 
    $reservations = $this->_EC2Client->DescribeInstances($requesltArray)->toArray(); 
} catch (Ec2Exception $exc) { 
    echo $exc; 
    return []; 
} 

結果:あなたは、あなたが持っているインスタンスの数によっては

AWS "DescribeInstances" を実行SDKエラーをInvalidInstanceID.NotFound

答えて

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); 
+0

私はこの解決策について考えましたが、Envでは有効なものではありません –

+0

あなたの現在の環境ではなぜそれが不可能であるか教えてください。インスタンスの数に起因するのでしょうか? –

+0

yeap、あなたはそれを持っています:) –

関連する問題