2013-07-24 2 views
1

작곡가가 설치되어 있고 ec2 클라이언트를 설치해야한다고 가정합니다.AWS에서 인스턴스 수를 계산하는 방법 PHP SDK2

+1

왜 당신이 질문을 게시하고 직접 대답합니까? –

+0

@ 무언가 "맑은 결정을 위해서, 당신이 묻는 질문에 대답하는 것만이 아니며, 분명히 권장됩니다." [stackoverflow.com] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) –

답변

2

Composer를 사용하여 권장되는 방법으로 SDK를 설정한다고 가정합니다. 먼저 aws_setup을 호출 한 다음 보안 자격 증명을 사용하여 ec2 클라이언트 개체를 만듭니다. 작곡가가 호출되었으므로 필요한 라이브러리가 자동으로로드됩니다.

그런 다음 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')))); 

코드는 오류없이 실행,하지만 난 적응했다 여기에 게시하십시오.

EDIT : countInstances 함수에 인스턴스 목록을 추가했습니다. 그렇지 않으면 보이지 않을 것입니다.

관련 문제