地形cloudflare循环记录



我有一个地形cloudflare推送的设置,配置如下:

locals {
ResourceRecordSets= [
{
Name =  "example.com.",
Type =  "A",
TTL =  60,
ResourceRecords =  [
{
Value =  "1.2.3.4"
}
]
}

使用这个locals值,我将DNS记录推送为:

resource "cloudflare_record" "com_records" {
count = length(local.ResourceRecordSets)
zone_id = cloudflare_zone.site.id
name    = local.ResourceRecordSets[count.index].Name
value   = local.ResourceRecordSets[count.index].ResourceRecords.value
type    = local.ResourceRecordSets[count.index].Type
proxied = false
ttl     = 1
}

我唯一纠结的是value部分。有时它可以是在CCD_ 4下具有多个值的CCD_。我应该使用什么类型的循环?

您必须压平您的ResourceRecordSet,例如:

FlatResourceRecordSets = merge([
for idx, ResourceRecordSet in local.ResourceRecordSets:
{
for ResourceRecord in ResourceRecordSet.ResourceRecords:
"${idx}-${ResourceRecord.Value}" => {
ResourceRecordSet = ResourceRecordSet
ResourceRecord =  ResourceRecord["Value"]
}
}
]...) # please do NOT remove the dots   

然后

resource "cloudflare_record" "com_records" {
for_each = local.FlatResourceRecordSets
zone_id = cloudflare_zone.site.id
name    = each.value["ResourceRecordSet"].Name
value   = each.value["ResourceRecord"]
type    = each.value["ResourceRecordSet"].Type
proxied = false
ttl     = 1
}

最新更新