Relay Starter Kit 项目云基础设施部署指南
2025-07-09 03:08:47作者:郁楠烈Hubert
项目概述
Relay Starter Kit 是一个基于 GraphQL 和 React 的现代化 Web 应用开发框架。本文将详细介绍如何为其配置和部署 Google Cloud Platform (GCP) 和 CDN 服务的基础设施资源,使用 Terraform 实现基础设施即代码(IaC)的管理方式。
环境准备
基础工具安装
在开始部署前,需要确保本地开发环境已安装以下工具:
- Node.js 环境:建议使用 v18 或更高版本,并配合 Yarn 包管理器
- Google Cloud SDK:用于与 GCP 服务交互
- Terraform CLI:基础设施编排工具
macOS 下安装 Terraform
对于 macOS 用户,推荐使用 Homebrew 安装 Terraform:
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
brew update
brew upgrade hashicorp/tap/terraform
terraform -version
GCP 项目配置
需要为测试和生产环境分别创建 GCP 项目:
- 登录 GCP 控制台
- 创建两个项目,例如:
- 生产环境:
example-prod
- 测试环境:
example-test
- 生产环境:
Terraform Cloud 工作区配置
- 创建两个工作区:
app-test
:测试环境app-prod
:生产环境
- 在每个工作区中设置
GOOGLE_CREDENTIALS
环境变量,值为具有足够权限的 GCP 服务账户 JSON 密钥
Terraform CLI 认证
- 在 Terraform Cloud 中创建 API Token
- 在项目根目录创建
.terraformrc
文件:
credentials "app.terraform.io" {
token = "你的API令牌"
}
部署流程
初始化工作区
yarn tf init -upgrade
此命令会初始化 Terraform 工作区并下载必要的 provider 插件。
规划变更
yarn tf plan
执行此命令会生成执行计划,显示将要创建、修改或删除的资源,但不会实际执行变更。
应用变更
yarn tf apply
此命令会实际执行 plan
阶段提出的变更,部署基础设施资源。
环境切换
默认使用测试环境工作区,要切换到生产环境:
TF_WORKSPACE=prod yarn tf plan
TF_WORKSPACE=prod yarn tf apply
最佳实践建议
- 权限管理:为 Terraform 使用的服务账户遵循最小权限原则
- 状态文件:建议使用远程后端存储 Terraform 状态
- 变更审查:在生产环境应用变更前,务必仔细审查
plan
输出 - 版本控制:将 Terraform 配置文件和模块纳入版本控制系统
- 模块化设计:将基础设施分解为可重用的模块
常见问题排查
- 认证失败:检查
GOOGLE_CREDENTIALS
环境变量是否正确设置 - 权限不足:确保服务账户具有足够权限
- 资源冲突:某些 GCP 资源名称需要全局唯一
- API 未启用:确保所需 GCP API 已在项目中启用
通过本文介绍的流程,开发者可以快速为 Relay Starter Kit 项目搭建完整的云基础设施环境,实现开发、测试和生产环境的隔离部署。