public function findEc2Instances(array $filters = [])
{
$cacheKey = 'Ec2Repository->findEc2Instances:' . serialize($filters);
return StaticCache::get($cacheKey, function () use($filters) {
$ec2Client = \AwsInspector\SdkFactory::getClient('ec2');
/* @var $ec2Client \Aws\Ec2\Ec2Client */
$result = $ec2Client->describeInstances(['Filters' => $filters]);
$rows = $result->search('Reservations[].Instances[]');
$collection = new \AwsInspector\Model\Collection();
foreach ($rows as $row) {
$instance = Factory::create($row);
if ($instance !== false) {
$collection->attach($instance);
}
}
return $collection;
});
}