为 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')),
)
));
我可以使用 LaunchTime
和 AvailabilityZone
信息获取所有 运行 个实例。
它们的值分别是 2014-10-31T10:58:35+00:00
和 ap-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"]);
我正在使用 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')),
)
));
我可以使用 LaunchTime
和 AvailabilityZone
信息获取所有 运行 个实例。
它们的值分别是 2014-10-31T10:58:35+00:00
和 ap-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"]);