跳转到内容
搜索文档

修改规则集时规则 ID 会发生变化

最后更新 查看 MarkdownAgent 设置

对于 cloudflare_ruleset 资源,当您在 Terraform 配置中修改规则集时,Cloudflare 提供程序可能会删除一条规则并创建一条新规则。这是因为 API 无法将您新 Terraform 配置中的规则与 Cloudflare 配置中的现有规则相匹配。在 Terraform 配置中修改规则集并应用更改将在您的 Cloudflare 账户或区域中创建具有不同规则 ID 的新规则。

此行为可能会对您可能已配置的任何依赖于在修改规则期间具有不可变规则 ID 的自动化或监控系统产生影响。

如何在修改期间保持相同的规则 ID

要在通过 Terraform 更改规则集时保持现有的规则 ID,请为每条规则添加一个 ref 字段。

ref 字段是用户定义的外部标识符,它对于规则集中的每条规则必须是唯一的。当您提供 ref 值时,提供程序会将更新后的 Terraform 配置中的规则与具有相同 ref 外部标识符的现有规则相匹配,并且规则 ID 将被保留。

ref 值具有字符串数据类型,最小长度为一个字符。例如,my_ref

设置规则的 ref 字段后,更改 ref 字段的值将使 Terraform 创建一条新规则。

cf-terraformingref 字段值的支持

默认情况下,创建规则时,其 ref 值将等于规则 ID。您可以通过 Cloudflare API 设置 ref 值。

当您使用 cf-terraforming将现有的 Cloudflare 配置导入到 Terraform 时,生成的 Terraform 配置将为每条规则提供 ref 值,其值与规则 ID 相同。

如果您手动创建了 Terraform 配置,并且规则的配置没有 ref 字段,请为每条规则添加一个 ref 字段,以便每次规则集修改都不会生成新的规则 ID。

这篇文档对您有帮助吗?