You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现从Cloud Repository部署第二代Google Cloud Function的工作流?

实现第二代Google Cloud Functions的代码推送自动部署工作流

第二代Cloud Functions不再支持直接通过Cloud Source Repositories触发部署,你可以通过以下两种主流方案实现和第一代类似的"代码推送即部署"工作流:

方案一:使用GitHub Actions

  • 创建Google Cloud服务账号,授予Cloud Functions Admin和Storage Admin权限,下载该账号的JSON密钥文件。
  • 在你的GitHub仓库中,进入Settings > Secrets and variables > Actions,添加两个机密:
    • GCP_SERVICE_ACCOUNT_KEY:填入刚才下载的JSON密钥内容
    • GCP_PROJECT_ID:填入你的Google Cloud项目ID
  • 在仓库的.github/workflows目录下创建部署配置文件(例如deploy-gcf-v2.yml),内容如下:
name: Deploy Cloud Function v2
on:
  push:
    branches: [ main ] # 监听主分支的代码推送
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: 配置gcloud CLI
        uses: google-github-actions/setup-gcloud@v2
        with:
          service_account_key: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
          project_id: ${{ secrets.GCP_PROJECT_ID }}
      - name: 部署第二代Cloud Function
        run: |
          gcloud functions deploy YOUR_FUNCTION_NAME \
            --gen2 \
            --runtime nodejs20 \ # 替换为你的函数运行时(如python311)
            --region us-central1 \ # 替换为你的函数部署区域
            --trigger-http \ # 替换为你的触发器类型(如--trigger-topic=MY_TOPIC)
            --source .
  • 提交并推送上述配置文件到GitHub,之后每次向指定分支推送代码,GitHub Actions都会自动执行部署。

方案二:使用Cloud Build + Cloud Source Repositories

  • 保留原有的GitHub与Cloud Source Repositories的关联配置。
  • 在Google Cloud控制台打开Cloud Build服务,创建新触发器:
    • 触发器源选择Cloud Source Repositories,关联你的目标仓库
    • 设置触发条件为"推送到分支",指定要监听的分支(如main)
    • 构建配置选择"Cloud Build配置文件",指定仓库中cloudbuild.yaml的路径
  • 在仓库根目录创建cloudbuild.yaml文件,内容如下:
steps:
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    args:
      - gcloud
      - functions
      - deploy
      - YOUR_FUNCTION_NAME
      - --gen2
      - --runtime=nodejs20
      - --region=us-central1
      - --trigger-http
      - --source=.
  • 为Cloud Build默认服务账号授予Cloud Functions Admin和Storage Admin权限,保存触发器后,后续代码推送至Cloud Source Repositories时,会自动触发Cloud Build完成部署。

注意事项

  • 替换所有示例中的YOUR_FUNCTION_NAME、运行时、区域、触发器类型为你实际的函数配置
  • 确保服务账号拥有足够的权限,避免部署过程中出现权限错误
  • 可根据需求调整触发分支,比如仅在特定开发分支推送时触发测试部署

内容的提问来源于stack exchange,提问作者pwwolff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:43:25