我正在计算基于instance_type的保留实例的总数,我将它作为一个关键字存储在字典中的instance_type 。
首先,我通过get_all_reserved_instances()find所有保留的实例,然后对于由此返回的每个实例,我都这样做:
if each.state != 'retired': key = str(each.instance_type) res_count[key]+=each.instance_count
我也计算instance_type的基础上的instance_type总数。 首先,我通过get_all_instances()find所有实例,然后为每个instance_type执行此操作:
if each.state == 'running': key = str(each.instance_type) all_count[key]+=1
现在为一个实例types返回:
all_count = 17
res_count = 19
res_count大于all_count怎么可能? 如果没有ondemand实例, res_count可以等于all_count ,但是为什么这比all_count ? 一个非退休的实例也可以不运行? 如果是这样,那么我认为这是这种差异的情况。
使用状态有什么错误吗?还有其他原因吗?
一个非退休的实例也可以不运行?
running之外,AWS EC2实例还可以处于多个状态。 根据这个链接实例生命周期中的最新的官方文档,没有retired状态,但是代码中的each.state != 'retired'这一行将会拉取所有的保留实例。 res_count大于all_count怎么可能?