Это будет довольно сложно, когда нет разделительных символов ... это просто объединенная строка.Если бы был символ-разделитель, вы могли бы использовать split
, чтобы разбить строку и узнать числовую часть.Также, похоже, источник данных не эквивалентен azurerm_virtual_machine
для получения информации об именах.
Учитывая, что вам все равно придется вручную искать имя или идентификатор, чтобы импортировать информацию о текущих ресурсах.вы можете найти виртуальную машину с наибольшим номером, затем использовать что-то вроде следующего, чтобы добавить дополнительные виртуальные машины и увеличить число:
${var.region}${var.resource_type}${var.appname}${format("%03d", count.index + var.last_num)}${var.env}
Чтобы проверить, как это выглядит, вы можете посмотреть в этом примере:
variable "last_num" {
default = 98
}
variable "region" {
default = "uw"
}
variable "resource_type" {
default = "vm"
}
variable "appname" {
default = "myapp"
}
variable "env" {
default = "dev"
}
resource "local_file" "foo" {
count = 3
filename = "foo.text"
content = "${var.region}${var.resource_type}${var.appname}${format("%03d", count.index + 1 + var.last_num)}${var.env}"
}
Это дает вывод именования следующим образом:
+ local_file.foo[0]
id: <computed>
content: "uwvmmyapp099dev"
filename: "foo.text"
+ local_file.foo[1]
id: <computed>
content: "uwvmmyapp100dev"
filename: "foo.text"
+ local_file.foo[2]
id: <computed>
content: "uwvmmyapp101dev"
filename: "foo.text"