В команде terraform destroy
не существует существующей функции. Если вы действительно хотите это сделать и знаете, что делаете, вот обходной путь.
# list all resources
terraform state list
# remove that resource you don't want to destroy
# you can add more to be excluded if required
terraform state rm <resource_to_be_deleted>
# destroy the whole stack except above resource(s)
terraform destroy
Так почему эти команды работают для вашей идеи?
Состояние (* .tfstate) используется Terraform для отображения ресурсов реального мира в вашей конфигурации, отслеживания метаданных.
terraform state rm
удаляет элемент (ресурс) из состояния (* .tfstate).
Поскольку вы не запускаете terraform apply
или terraform refresh
, после terraform state rm
terraform вообще не знает, что исключенный ресурс был создан.
Когда вы запускаете terraform destroy
, он не имеет подробных сведений о состоянии этого ресурса и не разрушит его. Это уничтожит остальных.