Выбор ответа Middle Terraform и IaC спрашивают часто обновлено
count против for_each
Вопрос
Ресурсы созданы через count = length(var.names) для списка ["api", "web", "worker"]. Вы удалили "api" из списка. Что покажет план?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Индексы сдвинутся: [0] и [1] изменятся, [2] удалится. С count адрес ресурса это индекс.
Варианты ответа
- Удалится только ресурс для
"api", остальные не изменятся - Ничего не изменится, пока не сделать
terraform refresh - План упадёт с ошибкой о несовпадении длины списка и state
- Индексы сдвинутся:
[0]и[1]изменятся,[2]удалитсяправильный ответ
Разбор
С count адрес ресурса это индекс. После удаления первого элемента бывший web теперь [0], worker теперь [1], и Terraform захочет привести [0] и [1] к новым значениям, а [2] удалить. С for_each = toset(var.names) адреса будут ["web"], ["worker"], и удалится только ["api"].
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.