为 AWS 实例获取 运行 时间

Getting running time for an AWS instance

我正在使用 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

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

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

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

我在 v3 中使用以下方法解决了它:

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

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