3

我将谷歌云功能的来源定义为谷歌云存储库。我更改了我的函数源代码,提交它并通过“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
4

2 回答 2

2

正如@Doug Stevenson 提到的,将您的代码推送到 Cloud Source Repository 并将其部署为 Cloud Function 的新版本是两件不同的事情。但是,您可以使用 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.在开发人员控制台中创建一个构建触发器,以便在您提交到存储库上的特定分支或标签时部署您的代码。

您会在这里找到一个更复杂的用例,其中涉及在需要时进行测试。

于 2019-06-15T08:27:06.770 回答
0

如果您不部署修改后的函数,则不会发生任何更改。将代码推送到源代码控制是不够的——您必须部署新代码才能开始运行它。

于 2019-06-15T06:31:43.163 回答