标签: terraform-provider-cloudflare

Terraform:基于 .tfvars 中的变量有条件地创建资源

我在.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)

我看过动态块,但看起来您只能使用它们来编辑资源中的字段和块。我需要能够忽略整个资源。

terraform terraform-provider-cloudflare

22
推荐指数
4
解决办法
1万
查看次数

使用 cloudflare 将请求路由到不同的 Web 应用程序

我目前有两个在 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

2
推荐指数
1
解决办法
2460
查看次数