1
假設作曲者已安裝,您需要設置ec2客戶端。如何統計AWS PHP SDK2中的實例數
假設作曲者已安裝,您需要設置ec2客戶端。如何統計AWS PHP SDK2中的實例數
假設使用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函數。否則它將不可見。
你爲什麼要發佈一個問題並自己回答? –
@無情「要清楚地說出來,問問和回答你自己的問題不僅僅是可以的,而是明確的鼓勵。」 [stackoverflow.com](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) –