如何计算AWS PHP SDK2中的实例数


How to count number of instances in AWS PHP SDK2

假设composer已经安装,并且您需要设置一个ec2客户端。

假设使用Composer以推荐的方法设置SDK。首先调用aws_setup,然后创建一个具有安全凭据的ec2客户端对象。由于composer已被调用,它将自动加载所需的库。

然后使用DescribeInstance获取所有正在运行的实例。

我打包了函数countInstances,这样它就可以重用了。您可以使用调用DescribeInstances用一个数组来过滤最后发布的结果。

设置如下:

require('/PATH/TO/MY/COMPOSER/vendor/autoload.php');
function aws_setup()
{
    $conf_aws = array();
    $conf_aws['key'] = 'MYKEY';
    $conf_aws['secret'] = 'MYSECRET';
    $conf_aws['region'] = 'us-east-1';
    return $conf_aws;
}
function countInstances($list)
{
  $count = 0;
  foreach($list['Reservations'] as $instances)
  {
    foreach($instances['Instances'] as $instance)
    {
      $count++;
    }
  }
  return $count;
}
$config = aws_setup();
$ec2Client = 'Aws'Ec2'Ec2Client::factory($config);
$list = $ec2Client->DescribeInstances();
echo "Number of running instances: " . countInstances($list);

如果你想过滤你的结果,试着把这样的东西作为DescribeInstances:的参数

array('Filters' => array(array('Name' => 'tag-value', 'Values' => array('MY_INSTANCE_TAG'))));

代码执行时没有错误,但我不得不对其进行调整以将其发布在这里。

EDIT:向countInstances函数添加了实例列表。否则就看不见了。