如何使用 Cloud Build 在 GCP 上部署功能?

Posted

技术标签:

【中文标题】如何使用 Cloud Build 在 GCP 上部署功能?【英文标题】:How to deploy a function on GCP with Cloud Build? 【发布时间】:2021-03-29 14:55:18 【问题描述】:

我创建了一个名为 pupetter-e2e 的云函数,其中包含对存储桶存储(称为主页)的更改的触发器。我想使用以下cloudbuild.yaml 为函数部署更新:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - pupetter-e2e
  - --source=.
  - --trigger-bucket homepage

(触发器描述:https://cloud.google.com/functions/docs/deploying/filesystem)

或者:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - pupetter-e2e
  - --source=.
  - --trigger-resource hjemmeside  
  - --trigger-event google.storage.object.finalize

(描述为https://cloud.google.com/functions/docs/calling/storage) 可悲的是,我得到了

错误:(gcloud.functions.deploy)无法识别的参数:--trigger-bucket hjemmeside(您的意思是“--trigger-bucket”吗?)或 --trigger-resource hjemmeside(你是说--trigger-resource吗?)

我尝试使用--trigger-bucket,但无法使其正常工作。有人可以通过纠正我的cloudbuild.yaml 中的错误来帮助我吗?

【问题讨论】:

【参考方案1】:

您有 2 个解决方案来解决这个问题(甚至更多,但 2 已经很好了)。首先,args 列表中不接受空格,所以:

用等号替换空格。
steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - pupetter-e2e
  - --source=.
  - --trigger-bucket=homepage
将参数值放入新的 ARGS 值(新行)
steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args:
  - functions
  - deploy
  - pupetter-e2e
  - --source=.
  - --trigger-bucket 
  - homepage

【讨论】:

以上是关于如何使用 Cloud Build 在 GCP 上部署功能?的主要内容,如果未能解决你的问题,请参考以下文章

GCP Cloud Build 标签发布

了解来自 GCP 的“需要采取行动”的电子邮件,重新:启用 Cloud Build API

spring-cloud 和 spring-cloud-gcp 是不是有通用 BOM 文件?

如何使用 GCP 控制台启用 Cloud Billing 导出?

Spring Cloud Stream GCP如何重新排队失败的消息

GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)