Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS boto3带状态的EC2配置服务列表_Amazon Web Services_Amazon Ec2_Service_Config_Boto3 - Fatal编程技术网

Amazon web services AWS boto3带状态的EC2配置服务列表

Amazon web services AWS boto3带状态的EC2配置服务列表,amazon-web-services,amazon-ec2,service,config,boto3,Amazon Web Services,Amazon Ec2,Service,Config,Boto3,我想使用Boto3生成一个EC2列表,以及两个日期时间之间的状态更改(挂起、运行、关闭、终止等)。我的理解是,即使EC2不再存在,配置服务也会维护EC2的历史记录。我已经看过了文档,但是我很难理解为了完成手头的任务应该使用哪些函数 谢谢假设您已经配置了AWS配置规则来跟踪ec2实例状态,这种方法将满足您的需要 1) 使用API获取ec2实例列表。如果要在响应中包括已删除的资源,请确保includeDeletedResources设置为True response = client.list_dis

我想使用Boto3生成一个EC2列表,以及两个日期时间之间的状态更改(挂起、运行、关闭、终止等)。我的理解是,即使EC2不再存在,配置服务也会维护EC2的历史记录。我已经看过了文档,但是我很难理解为了完成手头的任务应该使用哪些函数


谢谢

假设您已经配置了AWS配置规则来跟踪ec2实例状态,这种方法将满足您的需要

1) 使用API获取ec2实例列表。如果要在响应中包括已删除的资源,请确保includeDeletedResources设置为
True

response = client.list_discovered_resources(
    resourceType='AWS::EC2::Instance',
    limit=100,
    includeDeletedResources=True,
    nextToken='string'
)
解析响应并存储
资源id

2) 将每个
资源\u id
传递给API


您可以解析响应并获取状态更改,ec2实例在相应的时间段内经历了这些更改。

感谢您提供了详细的响应。您有关于如何在AWS配置中跟踪ec2实例状态的简单说明吗?如何做到这一点似乎并不明显。当我运行代码时,我的输出是聚合计数。。。我想查看EC2s的资源ID。如何显示EC2的资源ID?当调用
list\u discovered\u resources
API时,在响应中查找
resourceIdentifiers
标记,它是一个列表。这将依次具有resourceName、resourceId、resourceType和resourceDeletionTime等属性。您可以循环响应并获取resourceId。它不是聚合。我把最后一句话的那一部分弄错了。很抱歉,如果没有看到您的代码,您将无法完全理解。如果您试图聚合每个ec2实例的状态,我认为您需要从您自己的自定义python逻辑处理它。我刚才提到了可以使用哪种API来实现您的目标。
response = client.get_resource_config_history(
    resourceType='AWS::EC2::Instance',
    resourceId='i-0123af12345be162h5',      // Enter your EC2 instance id here
    laterTime=datetime(2018, 1, 7),         // Enter end date. default is current date.
    earlierTime=datetime(2018, 1, 1),       // Enter start date
    chronologicalOrder='Reverse'|'Forward',
    limit=100,
    nextToken='string'
)