Хотя вы можете использовать -target
, как упомянуто в ответ manojlds , для определения конкретных ресурсов, с которыми нужно работать каждый раз, это означает что-то вроде аварийного выхода, когда у вас происходит что-то странное инеобходимо игнорировать изменения, которые будут применены к другим ресурсам в этой области.
Это прямо упоминается в документации Terraform для -target
:
Этовозможность нацеливания предоставляется для исключительных обстоятельств, таких как восстановление после ошибок или обход ограничений Terraform.Не рекомендуется использовать -target для рутинных операций, так как это может привести к необнаруженному отклонению конфигурации и путанице относительно того, как истинное состояние ресурсов относится к конфигурации.
Вместо этого вам следует подумать о том, что выготовы изменить как набор и поместить .tf
файлы Terraform, которые должны быть изменены как единое целое, в один и тот же каталог и использовать для них один и тот же файл состояния.
Если вы не хотите, чтобы две вещи былиизменяется одновременно (например, настройка VPC, а также настройка приложения, которое живет в этом VPC или настройка тестовой и рабочей версий приложения), тогда они должны находиться в разных каталогах и использовать разные файлы состояния.
Это обеспечивает хорошее разделение вещей, минимизирует радиус взрыва, но все же облегчает применение кусков вещей, которые связаны в одно и то же время.
В вашем конкретном случае я бы спросил, почему вы бы нене хочу применять и VPC, и подсети одновременно, так как этообычно просто считается частью базовой сетевой конфигурации, необходимой для выполнения каких-либо задач. Совместное управление ими обычно имеет большой смысл и позволяет вам делать такие вещи, как изменение имени VPC, а также переименование подсетей в том же apply
.