43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			HCL
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			HCL
		
	
	
	
# Cloudflare 配置
 | 
						|
# 使用 Consul 存储的 Cloudflare token 进行 API 调用
 | 
						|
 | 
						|
# 从 Consul 获取 Cloudflare 配置
 | 
						|
data "consul_keys" "cloudflare_config" {
 | 
						|
  key {
 | 
						|
    name = "token"
 | 
						|
    path = "config/dev/cloudflare/token"
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
# Cloudflare Provider 配置
 | 
						|
provider "cloudflare" {
 | 
						|
  api_token = data.consul_keys.cloudflare_config.var.token
 | 
						|
}
 | 
						|
 | 
						|
# 测试 Cloudflare API 连通性 - 获取可用区域
 | 
						|
data "cloudflare_zones" "available" {
 | 
						|
  filter {
 | 
						|
    status = "active"
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
# 测试 Cloudflare API 连通性 - 获取账户信息
 | 
						|
data "cloudflare_accounts" "available" {}
 | 
						|
 | 
						|
# 输出 Cloudflare 连通性测试结果
 | 
						|
output "cloudflare_connectivity_test" {
 | 
						|
  description = "Cloudflare API 连通性测试结果"
 | 
						|
  value = {
 | 
						|
    zones_count = length(data.cloudflare_zones.available.zones)
 | 
						|
    accounts_count = length(data.cloudflare_accounts.available.accounts)
 | 
						|
    zones = [for zone in data.cloudflare_zones.available.zones : {
 | 
						|
      name = zone.name
 | 
						|
      id   = zone.id
 | 
						|
    }]
 | 
						|
    accounts = [for account in data.cloudflare_accounts.available.accounts : {
 | 
						|
      name = account.name
 | 
						|
      id   = account.id
 | 
						|
    }]
 | 
						|
  }
 | 
						|
}
 |