CloudWatch EC2 - 查找EC2服务器的实例ID和实例名称

时间:2015-01-21 00:29:20

标签: amazon-web-services amazon-ec2 amazon-cloudwatch

我有一个我报告的自定义CloudWatch指标。我的电话看起来像:

$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 个答案:

答案 0 :(得分: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"];