如何解决使用terraform-cloudflare提供程序的Cloudflare页面规则不会更新页面规则
我正在使用terraform + Cloudflare提供程序。
我创建了页面规则,即我第一次拳打 terraform plan + terraform apply。
第二次运行同一命令将返回错误:
错误:无法创建页面规则:来自makeRequest的错误:HTTP状态400:内容“ {”成功“:false,”错误“:[{”代码“:1004,”消息“:”页面规则验证失败:有关详细信息,请参阅消息。“}],”消息“:[{”代码“:1,”消息“:”。distinctTargetUrl:您的区域已经具有该URL的现有页面规则。如果您只修改页面规则设置,请使用“编辑页面规则”选项“,” type“:null}],”结果“:null}”
TLDR:如何仅通过更改文件中的定义来使terraform更新现有的页面规则?这不是应该如何工作的吗?
provider "cloudflare" {
email = "__EMAIL__"
api_key = "__GLOBAL_API_KEY__"
}
resource "cloudflare_zone_settings_override" "default_cloudflare_config" {
zone_id = "__ZONE_ID__"
settings {
always_online = "on"
always_use_https = "off"
min_tls_version = "1.0"
opportunistic_encryption = "on"
tls_1_3 = "zrt"
automatic_https_rewrites = "on"
ssl = "strict"
# 8 days
browser_cache_ttl = "691200"
}
}
resource "cloudflare_page_rule" "rule_bypass_wp_admin" {
target = "*.__DOMAIN__/*wp-admin*"
zone_id = "__ZONE_ID__"
priority = 2
status = "active"
actions {
always_use_https = true
always_online = "off"
cache_level = "bypass"
disable_apps = "true"
disable_performance = true
disable_security = true
}
}
解决方法
我仍然无法通过Terraform进行更新,因此我在重新创建之前使用Python删除了它。
# Delete existing page rules using API before readding with Terraform
# For some reason,it I could not update then with Terraform without deleting first
# https://stackoverflow.com/questions/63942345/cloudflare-page-rules-using-terraform-cloudflare-provider-does-not-update-page-r
page_rules = cf.zones.pagerules.get(zone_id)
print(page_rules)
for pr in page_rules:
cf.zones.pagerules.delete(zone_id,pr.get('id'))
page_rules = cf.zones.pagerules.get(zone_id)
if page_rules:
exit('Failed to delete existing page rules for site')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。