问题标签 [terraform-provider-cloudflare]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
terraform - terraform cloudflare 页面规则中不能包含自引用
我想创建一个页面规则以确保所有传入的http
流量都将转换为https
这是我的规则:
目标线基于terraform提供的示例
但是,当我运行 terraform 文件时,出现此错误
示例不再有效吗?如果是这样,正确的语法是什么?
terraform - 创建 always_use_https 页面规则失败并出现错误 Invalid setting always_use_https
这是我的规则
always_use_https
文档说默认值为false。我想为该区域的所有 http 流量启用此规则。
当我应用规则时,我收到此错误:
我尝试了诸如“on”之类的替代值,但它被拒绝了,因为 terraform 说该设置只接受布尔值。
如何使用 terraform 设置此规则?
cloudflare - 使用 cloudflare 将请求路由到不同的 Web 应用程序
我目前有两个使用以下 CNAME 在 cloudflare 中设置的 Web 应用程序。两者都是 keystonejs 应用程序。
我设置了 Cloudflare Enterprise,因此我可以在我的页面规则中使用“渲染覆盖”功能。我使用以下内容设置了 2 个页面规则:
现在为了访问 app2.example.com 上的 keystonejs 应用程序。使用 app2.example.com/pa 调用该应用程序
我面临的问题是渲染覆盖不允许我使用子路径,我不想使用转发规则。我是否需要通过根 url 访问我的 keystone 应用程序,即 app2.example.com/ ?还是有其他方法可以做到这一点?否则,我需要使用反向代理吗?比如 nginx ?谢谢
terraform - 将 cloudflare_zone_settings_override 应用于多个区域
我只是用 Terraform 弄湿了我的脚,但我没有看到一个明显的方法来阻止我重复自己。
我在 Cloudlfare 中有一堆要管理的区域。这些区域都将具有非常相似的设置,我希望我的.tf
文件既短又易读。
假设我有 example1.com example2.com example3.com ...我使用以下代码添加它们:
到目前为止,一切都很好。
现在我想使用cloudflare_zone_settings_override
提供程序将一些相同的设置应用于我的所有区域。
查看文档对于一个区域来说这是直截了当的。但我宁愿不必为每个区域都这样做:
将这些应用到 Cloudflare 中的所有(或部分)区域的最佳方式是什么?
谢谢
terraform - 使用循环创建 cloudflare terraform 提供商防火墙
我正在尝试解决防火墙创建分为两个部分的约束,创建一个过滤器并基于过滤器创建规则。过滤器创建公开了应该在 fw 规则创建中使用的过滤器 ID。我不知道如何正确地遍历具有过滤器和规则值的映射并包含新创建的过滤器。如果我只使用带有名称和表达式的简单地图,一切正常,但如果我添加规则优先级,这里就是我的地图
现在这是我的过滤器和固件代码
现在,如果我不包括优先级,我可以在创建防火墙时对过滤器输出执行 for_each,使用来自资源的 id 输出和用于描述的键(cf tf 提供程序使用描述作为名称)但是,如果我需要添加键,我需要使用值加上作为过滤器创建输出的 id 来遍历地图,但我不确定如何正确映射它。代码目前不起作用。
terraform - Terraform:基于 .tfvars 中的变量有条件地创建资源
我在.tf
多个应用程序通用的文件中定义了资源。我通过.tfvars
文件填充了许多字段。我需要完全基于.tfvars
.
例如,如果我有这样的资源:
但后来我cloudflare = false
在我的.tfvars
文件中声明了类似的东西,我希望能够做这样的事情:
我查看了动态块,但看起来您只能使用它们来编辑资源中的字段和块。我需要能够忽略整个资源。
terraform - 使用 terraform-cloudflare 提供程序的 Cloudflare 页面规则不会更新页面规则
我正在使用 Terraform + Cloudflare 提供程序。
我在第一次运行terraform plan + terraform apply时创建了一个页面规则。
再次运行相同的命令会返回错误:
错误:无法创建页面规则:来自 makeRequest 的错误:HTTP 状态 400:内容 "{"success":false,"errors":[{"code":1004,"message":"页面规则验证失败:请参阅消息details."}],"messages":[{"code":1,"message":".distinctTargetUrl: 您的区域已经有一个具有该 URL 的现有页面规则。如果您只修改页面规则设置,请改用编辑页面规则选项","type":null}],"result":null}"
TLDR:如何让 Terraform 仅通过更改此文件中的定义来更新现有页面规则?这不是应该如何工作的吗?
这是 terraform.tf 文件:
cloudflare - 如何通过 API 或 Terraform 禁用 Cloudflare Browser Insights?
我在 API 文档中找不到有关 Cloudflare Browser Insights 的任何信息。
如何以编程方式禁用它?
terraform - Terraform:声明结构化/类型化的本地或变量
我正在实现一个 Cloudflare Terraform 脚本,但在删除 zone_settings 的块时遇到问题:
设置块有大约 60 行,完全相等。我试图通过 foreach 来实现这个:
(完整代码:https ://gist.github.com/knyttl/ee10aa7d63adda866fe39151a9e015d9 )
但这Variables may not be used here.
在变量块中失败了。
所以我尝试了当地人:
(完整代码:https ://gist.github.com/knyttl/76ff39f3baf68df19dfbd05a37eb0ea5 )
但这以上面两条评论中的错误告终。
有没有办法做到这一点?
terraform - 通过 terraform 管理的每个区域中的默认 DNS 记录(例如 MX 记录)
我正在寻找一种使用 terraform 管理 cloudflare 区域和记录的方法,并在通过 terraform 管理的每个区域中创建一些默认记录(例如 MX),如下所示:
有没有人知道我如何实现这一点(如果这甚至可能......)?非常感谢!