复制步骤:
- 启用这些API:云存储库、云构建和云函数
- 创建存储库并从此处推送内容。这是一个简单的Python Flask应用程序,返回带有cloudbuild.yaml文件的简单Html
- 使用创建的名为la-repo-function-1的存储库(在cloudbuild.yaml文件中引用(创建Cloud函数,并使用带有HTTP触发器和函数的Python 3.7执行equalgreetings_HTTP
- 在该repo上创建Cloud Build触发器,并将其指向使用cloudbuild.yaml作为配置
- Change在main.py中返回了html问候语,并将其推送到存储库
预期结果:建立并重新部署了一项新职能。
实际结果:Cloud Build被触发,并观察到一个新的ACTIVE版本,但是旧的内容仍然被返回。从控制台下载的源代码是旧的。然而,不进行更改的手动重新部署是可行的(只需进入编辑选项卡并单击部署(。
注:这个问题与此类似。然而,我们在这里使用的是Python 3.7,而不是Node.js代码,根据GC发布说明,Python 3.7已经完全发布,还没有测试版。
那么这是一个bug还是我遗漏了什么?
这个问题在谷歌的issue Tracker中得到了跟踪,并在那里得到了处理。当决议完成时,应该有一个好的答案。
找到了解决方案,只需在以下代码上重新关联现有的cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['functions', 'deploy', 'la-repo-function-1', '--source','.','--trigger-http', '--runtime', 'python37', '--entry-point', 'greetings_http']
换句话说,源参数是强制性的(但是它的存在不会自动验证(