我将谷歌云函数的来源定义为谷歌云存储库。我更改了我的函数源代码,提交它并通过"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
正如@Doug Stevenson所提到的,将代码推送到Cloud Source Repository并将其部署为Cloud Function的新版本是两回事。但是,您可以使用云构建轻松自动执行此过程。基本实现包括 2 个步骤:
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.在开发人员控制台设置中创建构建触发器,以便在您提交到存储库上的特定分支或标记时部署代码。
您将在此处找到一个更复杂的用例,其中涉及在需要时进行测试。
如果不部署修改后的函数,则不会进行任何更改。 将代码推送到源代码管理是不够的 - 您必须部署新代码才能开始运行它。