【问题标题】:How to count number of instances in AWS PHP SDK2如何计算 AWS PHP SDK2 中的实例数
【发布时间】:2013-07-24 08:02:27
【问题描述】:

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

【问题讨论】:

  • 你为什么要发布问题并自己回答?
  • @relentless “为了清楚起见,不仅可以提出和回答您自己的问题,而且明确鼓励这样做。” stackoverflow.com

标签: php amazon-web-services amazon-ec2 composer-php


【解决方案1】:

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

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

我将函数 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'))));

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

编辑:将实例列表添加到 countInstances 函数。否则就看不到了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 2013-04-23
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多