PHP AWS SDKを使用して、実行中のインスタンスをすべてアカウントで取得しています。私はLaunchTime
とAvailabilityZone
情報で実行中のすべてのインスタンスを取得することができますAWSインスタンスの実行時間の取得
$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')),
)
));
:私は、次のAPIを使用していました。
これらの値はそれぞれ2014-10-31T10:58:35+00:00
とap-northeast-1a
です。
この情報に基づいて、実行時間を分単位で計算します。これを行う正しい方法は何ですか?
EC2クライアントや他のインスタンスので、異なるAZで動作している可能性があります。タイムゾーンを考慮する必要がありますか? – user3288346
「DateTime」オブジェクトは、差分を計算するときにタイムゾーンを考慮に入れ、EC2のAPIから返される値は整数(エポック)タイムスタンプです。 – giaour
okですが、 'launchTime'で返されるvaueは' string'であり、結果は分単位で必要です。そこで、次のように試しました: '$ launch_time = new DateTime($ instance [" LaunchTime "]);' '$ launch_time-> diff(new \ DateTime( 'now')、true)' 'echo $ launch_time時間、分、日を別々に生成します。手動で分に変換する必要がありますか? – user3288346