#码力全开·技术π对#如何通过Cloud Build自动化GCP资源部署,实现从代码提交到生产环境的CI/CD流水线?


GCP
key_3_feng
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
周周的奇妙编程
周周的奇妙编程

通过Cloud Build可构建端到端的CI/CD流水线,实现从代码提交到GCP资源部署的自动化。核心是使用​​cloudbuild.yaml​​定义多阶段构建流程,结合Terraform或gcloud CLI管理基础设施即代码(IaC)。

实现示例

  1. 配置触发器:在Cloud Build中创建GitHub/GitLab触发器,监听​​main​​分支推送。
  2. 编写流水线脚本
# cloudbuild.yaml
steps:
  # 步骤1:构建并推送容器镜像
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-app:$COMMIT_SHA', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/$PROJECT_ID/my-app:$COMMIT_SHA']

  # 步骤2:部署到Cloud Run
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    entrypoint: 'gcloud'
    args:
      - 'run'
      - 'deploy'
      - 'my-service'
      - '--image=gcr.io/$PROJECT_ID/my-app:$COMMIT_SHA'
      - '--region=us-central1'
      - '--platform=managed'

  # 步骤3:使用Terraform应用基础设施变更
  - name: 'hashicorp/terraform:1.6'
    dir: 'infra/prod'
    args: ['init']
  - name: 'hashicorp/terraform:1.6'
    dir: 'infra/prod'
    args: ['apply', '-auto-approve']

# 可选:部署后运行测试
timeout: 1200s


关键实践

  • 使用服务账号密钥Workload Identity Federation实现安全权限管理;
  • 通过构建触发器支持开发、预发、生产多环境部署;
  • 结合Cloud Build Slack通知Error Reporting实现状态反馈。


该方案实现代码变更自动触发测试、构建、部署全流程,提升发布效率与可靠性。

分享
微博
QQ
微信https://www.51cto.com/aigc/
回复
3天前
发布
相关问题
提问