如何部署TypeScript编写的Google Cloud Function并实现提交后自动重部署
自动构建部署TypeScript版Cloud Function操作步骤
你可以通过GCP原生的Cloud Build服务实现代码推送后自动构建部署,完整操作流程如下:
第一步:在项目根目录添加Cloud Build配置文件
新建名为cloudbuild.yaml的文件,写入以下配置,替换其中的占位符为你自己的实际参数:
steps: # 安装项目依赖 - name: 'node:18' entrypoint: npm args: ['install'] # 编译TypeScript代码 - name: 'node:18' entrypoint: npx args: ['tsc'] # 部署到Cloud Function - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: - 'functions' - 'deploy' - '替换为你的云函数名称' - '--runtime=nodejs18' # 替换为你实际使用的Node.js版本 - '--trigger-http' - '--region=替换为你的部署区域,例如us-central1' - '--source=build/src' - '--target=index' # 如果你不需要公开访问可以删掉下面这行 - '--allow-unauthenticated'
注意:请确保你的
package.json中@google-cloud/functions-framework放在dependencies字段下,不要仅放在开发依赖中,否则部署后运行会报错。
第二步:配置Cloud Build触发器
- 打开GCP控制台进入Cloud Build服务页面,点击左侧菜单栏的「触发器」
- 点击「创建触发器」,源选择你已经镜像到GCP的GitHub仓库
- 触发事件选择「推送到分支」,分支规则填写你要触发部署的分支(例如
^main$表示推送到main分支时触发) - 配置选择「Cloud Build配置文件」,文件路径填写
/cloudbuild.yaml - 保存触发器
第三步:配置Cloud Build服务账号权限
默认的Cloud Build服务账号没有云函数部署权限,需要手动赋权:
- 打开GCP控制台的「IAM与 admin」页面,找到账号格式为
[你的GCP项目编号]@cloudbuild.gserviceaccount.com的服务账号 - 给该账号添加以下3个角色:
- Cloud Functions 管理员
- Cloud Run 管理员
- 服务账号用户
验证效果
配置完成后,你只要向对应分支提交推送代码,Cloud Build就会自动触发构建流程,依次执行依赖安装、TS编译、函数部署的步骤,你可以在Cloud Build的「构建记录」页面查看执行日志和状态。
内容的提问来源于stack exchange,提问作者abc
相关产品推荐
相关产品推荐

