Назад | Перейти на главную страницу

Получение разного количества инстансов AWS в зависимости от того, как я считаю

Я рассчитываю общее количество зарезервированных экземпляров на основе instance_type и я храню это в словаре instance_type как ключ.

Во-первых, я нахожу все зарезервированные экземпляры по get_all_reserved_instances(), то для каждого возвращаемого этим экземпляра я делаю следующее:

if each.state != 'retired':
 key = str(each.instance_type)
 res_count[key]+=each.instance_count

Я также подсчитываю общее количество экземпляров на основе instance_type. Во-первых, я нахожу все свои экземпляры по get_all_instances() а затем для каждого instance_type Я сделаю это:

if each.state == 'running':
 key = str(each.instance_type)
 all_count[key]+=1

Теперь для одного типа экземпляра он возвращает:

all_count = 17

res_count = 19

Как это возможно, что res_count больше, чем all_count? res_count может быть равно all_count, если нет ondemand например, но почему это больше, чем all_count? может ли небытый экземпляр не работать? если это так, то я думаю, что это случай этой разницы.

Есть ли какая-то ошибка в использовании состояния или есть другая причина?

может ли небытый экземпляр не работать?

  • Да, экземпляр AWS EC2 может находиться в нескольких состояниях помимо running. Согласно последней официальной документации по этой ссылке Жизненный цикл экземпляра, здесь нет retired состояние, но линия each.state != 'retired' тем не менее в вашем коде будут извлекаться все зарезервированные экземпляры.

Как это возможно, что res_count больше all_count?

  • У вас есть экземпляры в состоянии, отличном от запущенного.