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

How to deploy a function on GCP with Cloud Build?

我创建了一个名为 pupetter-e2e 的 Cloud Function,它可以触发对存储桶存储(称为主页)的更改。我想使用以下 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) 可悲的是,我得到

ERROR: (gcloud.functions.deploy) unrecognized arguments: --trigger-bucket hjemmeside (did you mean '--trigger-bucket'?) or --trigger-resource hjemmeside (did you mean --trigger-resource?)

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

你有 2 个解决方案来解决这个问题(甚至更多,但 2 个已经很好了)。首先,args 列表中不接受 Space,因此:

  • 用等号替换 space。
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