微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用terraform-cloudflare提供程序的Cloudflare页面规则不会更新页面规则

如何解决使用terraform-cloudflare提供程序的Cloudflare页面规则不会更新页面规则

我正在使用terraform + Cloudflare提供程序。

创建了页面规则,即我第一次拳打 terraform plan + terraform apply。

第二次运行同一命令将返回错误

错误:无法创建页面规则:来自makeRequest的错误:HTTP状态400:内容“ {”成功“:false,”错误“:[{”代码“:1004,”消息“:”页面规则验证失败:有关详细信息,请参阅消息。“}],”消息“:[{”代码“:1,”消息“:”。distinctTargetUrl:您的区域已经具有该URL的现有页面规则。如果您只修改页面规则设置,请使用“编辑页面规则”选项“,” type“:null}],”结果“:null}”

TLDR:如何仅通过更改文件中的定义来使terraform更新现有的页面规则?这不是应该如何工作的吗?

这是terraform.tf文件

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 举报,一经查实,本站将立刻删除。