我有一个场景,我在存储桶中有一个秘密json文件,我想在Cloud Build的构建时cp
进入云函数的目录。
cp
命令有效,但是该文件既不在部署的zip中也不在运行时的代码中,因为缺少配置值时调用该函数会出错。
这里是cloudbuild.yaml
steps:
- name: "gcr.io/cloud-builders/gsutil"
args: ["cp", "gs://GCP-PROJECT/production.json", "./config/production.json"]
- name: "gcr.io/cloud-builders/gsutil"
args: ["cp", "gs://GCP-PROJECT/default.json", "./config/default.json"]
- name: gcr.io/cloud-builders/gcloud
args:
- beta
- functions
- deploy
- --region=europe-west1
- --memory=128
- --runtime=nodejs8
- --trigger-topic=mailsend-sg
- --stage-bucket=gen-function1-stage
- --timeout=20s
- --source=.
- --entry-point=sendMail
- send-sendgrid
- name: gcr.io/cloud-builders/gcloud
args:
- beta
- functions
- deploy
- --region=europe-west1
- --memory=128
- --runtime=nodejs8
- --trigger-http
- --stage-bucket=gen-function2-stage
- --timeout=20s
- --source=.
- --entry-point=makeMail
- make-fs-mail
timeout: "1600s"
我在localfile路径上做错了吗?
感谢stackoverflow:)
答案 0 :(得分:1)
在构建步骤“ args”中,将production.json和default.json放在/ config文件夹中。
因此,您需要在构建步骤中指定- --source=./config
,而不要像这样- --source=.
:
steps:
- name: "gcr.io/cloud-builders/gsutil"
args: ["cp", "gs://GCP-PROJECT/production.json", "./config/production.json"]
- name: "gcr.io/cloud-builders/gsutil"
args: ["cp", "gs://GCP-PROJECT/default.json", "./config/default.json"]
- name: gcr.io/cloud-builders/gcloud
args:
- beta
- functions
- deploy
- --region=europe-west1
- --memory=128
- --runtime=nodejs8
- --trigger-topic=mailsend-sg
- --stage-bucket=gen-function1-stage
- --timeout=20s
- --source=./config
- --entry-point=sendMail
- send-sendgrid
- name: gcr.io/cloud-builders/gcloud
args:
- beta
- functions
- deploy
- --region=europe-west1
- --memory=128
- --runtime=nodejs8
- --trigger-http
- --stage-bucket=gen-function2-stage
- --timeout=20s
- --source=./config
- --entry-point=makeMail
- make-fs-mail
timeout: "1600s"
那应该可以解决Cloud Functions部署问题。如果仍然遇到错误,请在此处发布错误/调试日志