2015-01-21 5 views
0

보고 할 사용자 지정 CloudWatch 메트릭이 있습니다. 내 전화는 다음과 같습니다 :CloudWatch EC2 - EC2 서버의 인스턴스 ID 및 인스턴스 이름 찾기

$dimensions = array(
    array(
     "Name" => "InstanceId", 
     "Value" => "need instance id here" 
    ), 
    array(
     "Name" => "InstanceName", 
     "Value" => "need instance name here" 
    ) 
); 

// API call to save cpu usage 
$client->putMetricData(array(
    "Namespace" => "mynamespace", 
    "MetricData" => array(
     array(
      "MetricName" => "CPU_Usage", 
      "Value" => $cpu_usage, 
      "Unit" => "Percent", 
      "Timestamp" => time(), 
      "Dimensions" => $dimensions 
     ) 
    ) 
)); 

스크립트를 실행하는 서버에 해당하는 값으로 InstanceId 및 InstanceName을 채우고 싶습니다.

CloudWatch API를 통해이를 수행 할 수있는 방법이 있습니까?

답변

1

내부 IP 호출을 사용하여 인스턴스 ID를 얻었으며 EC2의 describeTags이라는 ID를 사용하여 인스턴스 이름을 가져 왔습니다.

$instance_id = $curl->get("http://169.254.169.254/latest/meta-data/instance-id"); 
$tags_result = $ec2_client->describeTags(array(
    "Filters" => array(
     array(
      "Name" => "resource-id", 
      "Values" => array(
       $instance_id 
      ) 
     ), 
     array(
      "Name" => "key", 
      "Values" => array(
       "Name" 
      ) 
     ) 
    ) 
)); 
$instance_name = $tags_result["Tags"][0]["Value"];