如何在 terraform 中切片嵌套列表中的第一个元素
How to slice 1st element in nested list in terraform
我想将 var.domain_names
作为 list(list(string))
传递,示例:
domain_names = [
["foo.com",".*foo-1.com",".*foo-2.com"],
["bar.com",".*bar-1.com"],
...
]
因此它应该为 foo.com、bar.com 创建证书...但将其他人如 .*foo-1.com ... 添加到 subject_alternative_names。
请帮我解决这个问题,使用 terraform 0.12.18
resource "aws_acm_certificate" "certificate" {
domain_name = var.domain_names[count.index]
subject_alternative_names = slice(var.domain_names, 1, length(var.domain_names))
validation_method = var.validation_method
tags = {
Name = var.domain_names[count.index]
owner = "xx"
terraform = "true"
}
lifecycle {
create_before_destroy = true
}
}
您可以使用 map
和 for_each
循环来完成此操作。例如:
variable "domain_names" {
type = map(list(string))
default = {
"foo.com" = ["foo.com", ".*foo-1.com", ".*foo-2.com"]
"bar.com" = [".*bar-1.com"]
}
}
resource "aws_acm_certificate" "certificate" {
for_each = var.domain_names
domain_name = each.key
subject_alternative_names = each.value
validation_method = var.validation_method
tags = {
Name = each.key
owner = "xx"
terraform = "true"
}
lifecycle {
create_before_destroy = true
}
}
有关循环和条件的更多信息,请参阅 this blog post。
我想将 var.domain_names
作为 list(list(string))
传递,示例:
domain_names = [
["foo.com",".*foo-1.com",".*foo-2.com"],
["bar.com",".*bar-1.com"],
...
]
因此它应该为 foo.com、bar.com 创建证书...但将其他人如 .*foo-1.com ... 添加到 subject_alternative_names。
请帮我解决这个问题,使用 terraform 0.12.18
resource "aws_acm_certificate" "certificate" {
domain_name = var.domain_names[count.index]
subject_alternative_names = slice(var.domain_names, 1, length(var.domain_names))
validation_method = var.validation_method
tags = {
Name = var.domain_names[count.index]
owner = "xx"
terraform = "true"
}
lifecycle {
create_before_destroy = true
}
}
您可以使用 map
和 for_each
循环来完成此操作。例如:
variable "domain_names" {
type = map(list(string))
default = {
"foo.com" = ["foo.com", ".*foo-1.com", ".*foo-2.com"]
"bar.com" = [".*bar-1.com"]
}
}
resource "aws_acm_certificate" "certificate" {
for_each = var.domain_names
domain_name = each.key
subject_alternative_names = each.value
validation_method = var.validation_method
tags = {
Name = each.key
owner = "xx"
terraform = "true"
}
lifecycle {
create_before_destroy = true
}
}
有关循环和条件的更多信息,请参阅 this blog post。