git push后未刷新Google函数源

时间:2019-06-15 06:27:50

标签: google-cloud-platform google-cloud-functions google-cloud-repository

我将Google Cloud函数的源定义为Google Cloud存储库。 我更改了函数源代码,提交并通过“ git push --all google”将其推入存储库。 我在存储库中看到了功能代码的新版本,但是云功能采用了旧版本。

所以我需要部署新版本的函数。 我知道我无法使用控制台做到这一点。 当我尝试使用SDK进行部署时,我会收到

gcloud functions deploy json_in_out --runtime nodejs8 --source https://source.developers.google.com/projects/mot_cz/repos/functions/demo/master/paths/json_in_out --trigger-http
ERROR: (gcloud.functions.deploy) ResponseError: status=[400], code=[Bad Request], message=[The request has errors
Problems:
Source repository URL is invalid https://source.developers.google.com/projects/mot_cz/repos/functions/demo/master/paths/json_in_out does not match the expected pattern

2 个答案:

答案 0 :(得分:0)

如果不部署修改后的功能,则不会进行任何更改。将代码推送到源代码管理是不够的-您必须部署新代码才能开始运行它。

答案 1 :(得分:0)

将代码推送到Cloud Source Repository并将其部署为Cloud Function的新版本是两件事,就像@Doug Stevenson提到的那样。但是,您可以使用Cloud Build轻松地自动执行此过程。一个基本的实现包括两个步骤:

1。使用以下命令将cloudbuild.yaml文件添加到源代码中:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', '[YOUR_DEPLOYED_FUNCTION_NAME]', '[YOUR_FUNCTION_TRIGGER]', '--runtime', '[YOUR_RUNTIME]', '--entry-point', '[YOUR_FUNCTION_NAME_IN_CODE]']

2。在Developer Console设置中创建一个构建触发器,以便在每次提交到存储库中的特定分支或标签时都部署代码。

您会发现一个更复杂的用例here,其中涉及在需要时进行测试。