You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terragrunt+Terraform Cloudflare Provider认证失败求助

Cloudflare Terraform + Terragrunt认证错误解决

问题详情

我在通过Terragrunt配合Terraform对接Cloudflare账户时遭遇认证错误,配置代码如下:

locals {
  cloudflare_api_token = get_env("CLOUDFLARE_API_TOKEN")
  cloudflare_email = get_env("CLOUDFLARE_EMAIL")
}

terraform {
  source = "my source dir"
}

generate "versions" {
  path      = "versions.tf"
  if_exists = "overwrite_terragrunt"
  contents  = <<EOF
    terraform {
      required_providers {
        cloudflare = {
          source = "cloudflare/cloudflare"
          version = "~> 3.0"
        }
      }
    }
EOF
}

generate "provider" {
  path = "provider.tf"
  if_exists = "overwrite_terragrunt"
  contents = <<EOF
    provider "cloudflare" {
       email = "${local.cloudflare_email}"
       api_token = "${local.cloudflare_api_token}"
    }
EOF
}

收到的报错信息:

"email": all of `api_key,email` must be specified

我的疑问:使用api_token时应该无需搭配已弃用的api_key,且Terragrunt生成的配置看起来正确,该如何完成认证?

解决方法

  • 删除provider配置中的email字段:Cloudflare Provider的认证逻辑中,若提供email参数,会触发旧版api_key+email的认证校验规则,而你只填了email没填api_key才导致报错。使用api_token认证时,只需要保留api_token参数即可,修改后的provider配置如下:

    provider "cloudflare" {
       api_token = "${local.cloudflare_api_token}"
    }
    
  • 确认环境变量有效性:检查CLOUDFLARE_API_TOKEN环境变量是否已正确设置,且该token拥有你要操作的Cloudflare资源的对应权限。

  • 版本兼容性验证:你使用的~>3.0版本Cloudflare Provider完全支持api_token认证,无需依赖弃用的api_key,版本本身不存在问题,只需调整配置即可。

内容的提问来源于stack exchange,提问作者Murakami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:39:40