IMは変数型マップを繰り返すようにしようとしています。
これは私がこれまでのものです
Main.tfで:
resource "aws_route_53_record" "proxy_dns" {
count = "${length(var.account_name)}"
zone_id = "${infrastructure.zone_id}"
name = "proxy-${element(split(",", var.account_name), count.index)}-dns
type = CNAME
ttl = 60
records = ["{records.dns_name}"]
}
_
そして私の変数の中で.tf
variable "account_name" {
type = "map"
default = {
"account1" = "accountA"
"account2" = "accountB"
}
}
_
異なるアカウント名を持つ複数のリソースを作成できるようにしたい
Terraform 0.12.6以降を使用している場合は、count
の代わりに _for_each
_ を使用してマップの各要素に1つのインスタンスを作成できます。
_resource "aws_route53_record" "proxy_dns" {
for_each = var.account_name
zone_id = infrastructure.zone_id
name = "proxy-${each.value}-dns"
# ... etc ...
}
_
__(somecode)count
の主な利点は、Terraformがマップ内のキーでインスタンスを識別することです。将来的には、どの特定のインスタンスが各要素に属しているかを知っているTerraformを使用して、マップから要素を削除します。
_for_each
aws_route53_record.proxy_dns["account1"]
aws_route53_record.proxy_dns[0]
_が使用されている場合は、_each.key
_と_each.value
count.index
for_each
_を置き換えます。それらはそれぞれ現在のMAP要素の鍵と値に評価されます。
試すことができます。
resource "aws_route_53_record" "proxy_dns" {
count = "${length(var.account_name)}"
name = "proxy-${var.account_name[count.index]}-dns
}
_