Первая проблема, изменение атрибута зоны в зависимости от количества.Я вижу несколько вариантов (из которых 1 звучит лучше для меня):
1) Сделать этот кусок кода модулем с входами count
и region
.Создайте 2 модуля, по одному для каждого региона, и количество 2 (жестко запрограммированное или переданное).
2) Создайте локальный номер с количеством регионов, затем используйте оператор мода, чтобы выбрать, какой регион модномер региона.
locals {
regions = ["us-east1-b", "eu-west-1b"]
}
zone = "${element{local.regions, count.index % length(local.regions)}"
3) Создайте локальный регион с регионом, который вы хотите для каждого отсчета (это неубедительно, вы, вероятно, не хотите этого делать):
locals {
region_per_count = ["us-east1-b", "us-east-1b", "eu-west-1b", "eu-west-1b"]
}
Затем выберите из этого списка
zone = "${element(local.region_per_count, count.index")
Вторая проблема вызвана тем, что вы не выбираете конкретный google_compute_disk.us-am-build
для получения атрибута self_link
.Сделайте что-то вроде этого:
source = "${element(google_compute_disk.us-am-build.*.self_link, count.index)}"
.*.
помещает эту группу ресурсов в контекст списка, затем вы выбираете, какой ресурс с помощью element
.