#terraform
Вопрос:
Я хотел бы исключить данную строку из списка строк в terraform
пример: У меня есть следующий источник данных в качестве переменной
region_list = data.oci_identity_region_subscriptions.region_subscriptions.region_subscriptions.*.region_name
Теперь я хотел бы исключить из него регион. Регион «США-Ашберн-1»
исключить («us-ashburn-1») из списка регионов. Есть какие-нибудь мысли о том, как это сделать?
Комментарии:
1. Если какой-либо из приведенных ниже ответов удовлетворил ваш запрос. Я бы отметил этот вопрос как решенный, приняв ответ.
Ответ №1:
Вы можете сделать это, используя цикл for и условие if в terraform.
Пример конфигурации терраформы,
variable "regions" {
type = list
default = ["us-west-2", "us-west-1", "us-east-2", "us-east-1"]
}
output "excluded" {
value = [for region in var.regions : region if region != "us-east-1"]
}
В приведенной выше конфигурации будет выведен весь регион, кроме США-восток-1.
Подать заявку полностью! Ресурсы: 0 добавлено, 0 изменено, 0 уничтожено.
Выходы:
excluded = [
"us-west-2",
"us-west-1",
"us-east-2",
]
Ответ №2:
Самый простой способ избавиться от а set
ценностей в другом set
-это использовать setsubtract()
:
locals {
regions = ["us-west-2", "us-west-1", "us-east-2", "us-ashburn-1"]
}
output "excluded" {
value = setsubtract(local.regions, ["us-ashburn-1"])
}
выходы:
excluded = [
"us-east-2",
"us-west-1",
"us-west-2",
]
если вы хотите сохранить порядок или дубликаты в списке, то предпочтительнее использовать for
выражение, как уже упоминалось в другом ответе.