我正在实现一个 Cloudflare Terraform 脚本,但在删除 zone_settings 的块时遇到问题:
resource "cloudflare_zone_settings_override" "my-domain-settings-1" {
zone_id = cloudflare_zone.my_domain1.id
settings {
# very_long_list_of_settings
}
}
resource "cloudflare_zone_settings_override" "my-domain-settings-2" {
zone_id = cloudflare_zone.my_domain2.id
settings {
# very_long_list_of_settings
}
}
设置块有大约 60 行,完全相等。我试图通过 foreach 来实现这个:
variable domains {
default = [
# ERROR: Variables may not be used here.
cloudflare_zone.my_domain1,
cloudflare_zone.my_domain2,
]
}
resource "cloudflare_zone_settings_override" "partners-zone-settings" {
name = var.domains[count.index].name
zone_id = var.domains[count.index].id
settings {
# very_long_list_of_settings
}
}
(完整代码:https ://gist.github.com/knyttl/ee10aa7d63adda866fe39151a9e015d9 )
但这Variables may not be used here.
在变量块中失败了。
所以我尝试了当地人:
locals {
zone_settings {
# very_long_list_of_settings
# ERROR: cannot have nested blocks
}
}
resource "cloudflare_zone_settings_override" "my-domain-settings-1" {
zone_id = cloudflare_zone.divadlouhasicu_cz.id
# ERROR: An argument named "settings" is not expected here. Did you mean to define a block of type "settings"?
settings = var.zone_settings
}
resource "cloudflare_zone_settings_override" "my-domain-settings-2" {
zone_id = cloudflare_zone.divadlouhasicu_net.id
# ERROR: An argument named "settings" is not expected here. Did you mean to define a block of type "settings"?
settings = var.zone_settings
}
(完整代码:https ://gist.github.com/knyttl/76ff39f3baf68df19dfbd05a37eb0ea5 )
但这以上面两条评论中的错误告终。
有没有办法做到这一点?