создание ресурсной силы терраформирования

Я хотел бы знать, есть ли способ всегда создавать новый ресурс терраформирования и не уничтожать ранее развернутые ресурсы.

пример развертывания группы ресурсов 1

provider "azurerm" {
version = "=2.20.0"
features {}
}

resource "azurerm_resource_group" "example" {
name     = "rg-example-resources-1"
}

скажем, теперь я хочу развернуть rg-example-resources-2, но не хочу дублировать блок ресурсов. Мне известно о count, но я не хочу его использовать. если я изменю имя группы ресурсов terraform, я понимаю его как замену :(

какая-нибудь подсказка?


person user3291059    schedule 14.09.2020    source источник
comment
Как это будет декларативно? Terraform - это декларативный язык. Похоже, вам нужна здесь императивная команда?   -  person Jonas    schedule 14.09.2020
comment
было бы декларативно, если бы ввод считывался из внешнего файла   -  person user3291059    schedule 15.09.2020


Ответы (1)


Не уверен, зачем вам это нужно, но вы можете использовать для этого рабочую область terraform (текущая рабочая область - 'default'): 'terraform workspace new bar' 'terraform apply'

Новый ресурс будет создан в новой рабочей области. Чтобы использовать его без ошибок, вам нужно изменить имя группы ресурсов, например:

resource "azurerm_resource_group" "example" {
  name     = "rg-example-resources-${terraform.workspace}"
}

Подробности см. Здесь - https://www.terraform.io/docs/state/workspaces.html

Как вариант можно использовать встречный блок. Если вы не хотите воссоздавать первую группу ресурсов, вы можете создать ту же группу ресурсов с блоком подсчета:

resource "azurerm_resource_group" "example" {
  name     = "rg-example-resources-${count.index + 1}"
}
person Dmitry Kutetsky    schedule 20.09.2020