[ PROMPT_NODE_24362 ]
Terraform 配置说明
[ SKILL_DOCUMENTATION ]
# Terraform 配置参考
Cloudflare 基础设施的完整资源配置。
## 区域与 DNS
hcl
# 区域 + 设置
resource "cloudflare_zone" "example" { account = { id = var.account_id }; name = "example.com"; type = "full" }
resource "cloudflare_zone_settings_override" "example" {
zone_id = cloudflare_zone.example.id
settings { ssl = "strict"; always_use_https = "on"; min_tls_version = "1.2"; tls_1_3 = "on"; http3 = "on" }
}
# DNS 记录 (A, CNAME, MX, TXT)
resource "cloudflare_dns_record" "www" {
zone_id = cloudflare_zone.example.id; name = "www"; content = "192.0.2.1"; type = "A"; proxied = true
}
resource "cloudflare_dns_record" "mx" {
for_each = { "10" = "mail1.example.com", "20" = "mail2.example.com" }
zone_id = cloudflare_zone.example.id; name = "@"; content = each.value; type = "MX"; priority = each.key
}
## 智能体 (Workers)
### 简单模式 (旧版 - 仍可用)
hcl
resource "cloudflare_workers_script" "api" {
account_id = var.account_id; name = "api-worker"; content = file("worker.js")
module = true; compatibility_date = "2025-01-01"
kv_namespace_binding { name = "KV"; namespace_id = cloudflare_workers_kv_namespace.cache.id }
r2_bucket_binding { name = "BUCKET"; bucket_name = cloudflare_r2_bucket.assets.name }
d1_database_binding { name = "DB"; database_id = cloudflare_d1_database.app.id }
secret_text_binding { name = "SECRET"; text = var.secret }
}
### 渐进式发布 (生产环境推荐)
hcl
resource "cloudflare_worker" "api" { account_id = var.account_id; name = "api-worker" }
resource "cloudflare_worker_version" "api_v1" {
account_id = var.account_id; worker_name = cloudflare_worker.api.name
content = file("worker.js"); content_sha256 = filesha256("worker.js")
compatibility_date = "2025-01-01"
bindings {
kv_namespace { name = "KV"; namespace_id = cloudflare_workers_kv_namespace.cache.id }
r2_bucket { name = "BUCKET"; bucket_name = cloudflare_r2_bucket.assets.name }
}
}
resource "cloudflare_workers_deployment" "api" {
account_id = var.account_id; worker_name = cloudflare_worker.api.name
versions { version_id = cloudflare_worker_version.api_v1.id; percentage = 100 }
}
### 智能体绑定类型 (v5)
| 绑定 | 属性 | 示例 |
|---------|-----------|---------|
| KV | `kv_namespace_binding` | `{ name = "KV", namespace_id = "..." }` |
| R2 | `r2_bucket_binding` | `{ name = "BUCKET", bucket_name = "..." }` |
| D1 | `d1_database_binding` | `{ n