基础设施规格
责任边界
Terraform 管理两个 Hyperdrive 及可选上传存储桶,Wrangler 管理应用代码、域名、路由、绑定、变量和秘密。两者不同时管理同一字段,交接值仅为非秘密资源标识。
结构为 infra/modules/cloudflare/ 和 infra/envs/staging/、infra/envs/production/。每个根对应独立状态和固定环境;开发不创建远程资源,也没有共享的逐请求预览环境。
版本与命名
根配置约束 Terraform >= 1.12, < 2.0、Cloudflare 提供者 ~> 5.0,锁文件随代码提交。资源名称使用项目标识和环境,项目标识与 Worker 前缀相符。
升级版本同时检查根目录、CI 和远程工作区设置,不仅修改单个工具安装命令。
数据库与缓存
每个环境创建有缓存和无缓存两条 Hyperdrive。缓存最大时间和重新验证窗口由模块明确配置;连接软上限默认每条 20,源数据库要预算两条连接之和及余量。
连接串解析拒绝不支持的格式、百分号编码凭据及 -pooler 主机。密钥包含特殊字符时先按当前解析限制准备连接方式,不能让未解码文本成为真实密码。
权限、认证、账单和积分使用无查询缓存的连接。上传存储桶的可选配置不代表主站已经有上传接口或清理流程。
状态与远程设置
HCP Terraform 保存状态、锁及历史,状态含源数据库凭据。根固定主机、组织和工作区;复制新站时替换占位名称。
工作区选择命令行驱动、远程执行、对应 envs/<环境> 工作目录、符合约束的版本和完整变量。Cloudflare 令牌作为工作区环境变量,数据库地址作为敏感输入。调用者 TF_VAR_* 可能覆盖输入,运行前检查并审阅计划。
CI 与权限
普通 CI 仅无后端验证,使用只读锁文件,不持有远程资源凭据。手动基础设施工作流先保存计划,后应用同一计划;规划与应用环境分开,应用令牌按工作区隔离。
规划执行远程配置,不是针对不可信分支的安全沙箱。主分支规则与实际环境审批需要维护者配置。具体操作见 自动检查与发布 与 infra/README.md。