获取AWS实例的运行时间

时间:2016-04-05 04:55:15

标签: amazon-ec2 aws-php-sdk

我正在使用PHP AWS SDK获取我帐户中的所有正在运行的实例。我使用了以下API:

$this->ec2Client = Ec2Client::factory(array(
            'profile' => AWS_PROFILE, //contains my credentials
            'region' => 'ap-northeast-1',
            'version' => 'latest',
        ));

$result = $this->ec2Client->DescribeInstances(array(
            'Filters' => array(
                array('Name' => 'instance-state-name', 'Values' => array('running')),
            )
        ));

我可以使用LaunchTimeAvailabilityZone信息获取所有正在运行的实例。

它们的值分别为2014-10-31T10:58:35+00:00ap-northeast-1a

根据这些信息,我想以分钟为单位计算运行时间。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

为每个实例的LaunchTime提供的值应该是DateTime的实例。您可以通过获取LaunchTime与另一个DateTime实例之间的差异来获取实例运行的时间:

$interval = $launchTime->diff(new \DateTime('now'), true);

答案 1 :(得分:0)

我在v3中使用以下内容解决了它:

function interval_in_minutes($start_time){
        return round(abs($start_time->getTimestamp() -
            (new \DateTime)->getTimestamp()) / 60);
    }

$running_time = interval_in_minutes($instance["LaunchTime"]);