[ PROMPT_NODE_24360 ]
Terraform API 参考
[ SKILL_DOCUMENTATION ]
# Terraform 数据源参考
查询现有的 Cloudflare 资源以在配置中引用。
## v5 数据源名称
| v4 名称 | v5 名称 | 说明 |
|---------|---------|-------|
| `cloudflare_record` | `cloudflare_dns_record` | |
| `cloudflare_worker_script` | `cloudflare_workers_script` | 注意:复数 |
| `cloudflare_access_*` | `cloudflare_zero_trust_*` | Access → Zero Trust |
## 区域 (Zone) 数据源
hcl
# 按名称获取区域
data "cloudflare_zone" "example" {
name = "example.com"
}
# 在资源中使用
resource "cloudflare_dns_record" "www" {
zone_id = data.cloudflare_zone.example.id
name = "www"
# ...
}
## 账户 (Account) 数据源
hcl
# 列出所有账户
data "cloudflare_accounts" "main" {
name = "My Account"
}
# 使用账户 ID
resource "cloudflare_worker_script" "api" {
account_id = data.cloudflare_accounts.main.accounts[0].id
# ...
}
## 智能体 (Worker) 数据源
hcl
# 获取现有智能体脚本 (v5: cloudflare_workers_script)
data "cloudflare_workers_script" "existing" {
account_id = var.account_id
name = "existing-worker"
}
# 在服务绑定中引用
resource "cloudflare_workers_script" "consumer" {
service_binding {
name = "UPSTREAM"
service = data.cloudflare_workers_script.existing.name
}
}
## KV 数据源
hcl
# 获取 KV 命名空间
data "cloudflare_workers_kv_namespace" "existing" {
account_id = var.account_id
namespace_id = "abc123"
}
# 在智能体绑定中使用
resource "cloudflare_workers_script" "api" {
kv_namespace_binding {
name = "KV"
namespace_id = data.cloudflare_workers_kv_namespace.existing.id
}
}
## 列表 (Lists) 数据源
hcl
# 获取 WAF 规则的 IP 列表
data "cloudflare_list" "blocked_ips" {
account_id = var.account_id
name = "blocked_ips"
}
## IP 范围数据源
hcl
# 获取 Cloudflare IP 范围 (用于防火墙规则)
data "cloudflare_ip_ranges" "cloudflare" {}
output "ipv4_cidrs" {
value = data.cloudflare_ip_ranges.cloudflare.ipv4_cidr_blocks
}
output "ipv6_cidrs" {
value = data.cloudflare_ip_ranges.cloudflare.ipv6_cidr_blocks
}
# 在安全组规则中使用 (AWS 示例)
resource "aws_security_group_rule" "allow_cloudflare" {
type = "ingress"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = data.cloudflare_ip_ranges.cloudflare.ipv4_cidr_blocks
security_group_id = aws_security_group.web.id
}
## 常见模式
### 导入 ID 格式
| 资源 | 导入 ID 格式 |
|----------|------------------|
| `cl