假设 composer 已安装并且您需要设置一个 ec2 客户端。
问问题
1022 次
1 回答
2
假设使用 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 函数。否则就看不到了。
于 2013-07-24T17:27:26.767 回答