我在.tf多个应用程序通用的文件中定义了资源。我通过.tfvars文件填充了许多字段。我需要完全基于.tfvars.
例如,如果我有这样的资源:
resource "cloudflare_record" "record" {
zone_id = "${data.cloudflare_zones.domain.zones[0].id}"
name = "${var.subdomain}"
value = "${var.origin_server}"
type = "CNAME"
ttl = 1
proxied = true
}
Run Code Online (Sandbox Code Playgroud)
但是后来我cloudflare = false在我的.tfvars文件中声明了类似的东西,我希望能够做这样的事情:
if var.cloudflare {
resource "cloudflare_record" "record" {
zone_id = "${data.cloudflare_zones.domain.zones[0].id}"
name = "${var.subdomain}"
value = "${var.origin_server}"
type = "CNAME"
ttl = 1
proxied = true
}
}
Run Code Online (Sandbox Code Playgroud)
我看过动态块,但看起来您只能使用它们来编辑资源中的字段和块。我需要能够忽略整个资源。
我目前有两个在 cloudflare 中使用以下 CNAME 设置的 Web 应用程序。两者都是 keystonejs 应用程序。
app1.example.com ===pointing to ===> AWS ALB 1
app2.example.com ===pointing to ===> AWS ALB 2
Run Code Online (Sandbox Code Playgroud)
我已设置 Cloudflare Enterprise,因此我可以在页面规则中使用“渲染覆盖”功能。我使用以下内容设置了 2 个页面规则:
www.example.com ===render override ===> app1.example.com
www.example.com/app2/* ===render override ===> app2.example.com
Run Code Online (Sandbox Code Playgroud)
现在为了访问 app2.example.com 上的 keystonejs 应用程序。使用 app2.example.com/pa 调用该应用程序
我面临的问题是渲染覆盖不允许我使用子路径,并且我不想使用转发规则。我是否需要通过根 URL(即 app2.example.com/ )访问我的 keystone 应用程序?或者还有其他方法可以做到这一点吗?否则,我需要使用反向代理吗?比如nginx?谢谢
cloudflare keystonejs cloudflare-workers terraform-provider-cloudflare