Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算AWS PHP SDK2中的实例数_Php_Amazon Web Services_Amazon Ec2_Composer Php - Fatal编程技术网

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

如何计算AWS PHP SDK2中的实例数,php,amazon-web-services,amazon-ec2,composer-php,Php,Amazon Web Services,Amazon Ec2,Composer Php,假设已安装composer,您需要安装ec2客户端。假设使用composer的推荐方法安装SDK。首先调用aws_setup,然后使用安全凭据创建ec2客户端对象。由于已调用composer,它将自动加载所需的库 然后使用DescribeInstances获取所有正在运行的实例 我打包了countInstances函数,以便可以重用。您可以使用调用descripbeinstances 使用一个数组来过滤最后发布的结果 设置如下: require('/PATH/TO/MY/COMPOSER/ven

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

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

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

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

设置如下:

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);
如果要筛选结果,请尝试以下方法作为参数来描述实例:

array('Filters' => array(array('Name' => 'tag-value', 'Values' => array('MY_INSTANCE_TAG'))));
代码执行时没有错误,但我必须对其进行调整以将其发布到这里


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

你为什么要发布一个问题并自己回答呢?@unsertive“说得非常清楚,不仅仅可以问和回答你自己的问题,还可以明确鼓励。”