如何获得实例的启动时间?

时间:2018-06-12 06:54:38

标签: ruby-on-rails amazon-web-services amazon-ec2

我希望获得使用launch_at时间运行或停止的aws实例的信息。我试过这个:

@resp = client.describe_instance_status({
  filters: [
    {  
      name: "instance-state-name",
      values: ["stopped","running"],
    },
  ],
  instance_ids: aws_instance_ids,  # this is array of aws instance ids
  dry_run: false,
  include_all_instances: true,
})

这个api调用给我这个输出作为回应。

<struct Aws::EC2::Types::InstanceStatus availability_zone="us-east-1b", events=[], instance_id="XXXXXXXXXXXXX", instance_state=<struct Aws::EC2::Types::InstanceState code=80, name="stopped">, instance_status=# <struct Aws::EC2::Types::InstanceStatusSummary details=[], status="not-applicable">, system_status=<struct Aws::EC2::Types::InstanceStatusSummary details=[], status="not-applicable">>

但我没有获得launch_at实例信息。如何通过此API调用获取它?

2 个答案:

答案 0 :(得分:0)

没有可靠的方法来获取已停止的实例的启动时间。 (此外 - 它可能有很多!)

相反,请使用AWS Config,它可以提供资源的完整历史记录,包括何时启动,停止和修改。

答案 1 :(得分:0)

     @resp = client.describe_instances({ 
     filters: [ 
       {
          name: "instance-state-name", 
          values: ["stopped","running"], 
        }, 
      ], 
     instance_ids: aws_instance_ids, #we pass here array of ec2 instance id
     dry_run: false, })

此api调用获取了启动时间详细信息或ec2实例的所有详细信息