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
 | |
|     }]
 | |
|   }
 | |
| }
 |