重建后Python云函数不更新

问题描述 投票:0回答:2

重现的步骤。

  1. 启用这些API。云存储库、云构建和云功能。
  2. 创建存储库,并将内容从 此处 有。这是一个简单的Python Flask应用,用cloudbuild.yaml文件返回简单的Html。
  3. 使用创建的存储库创建云函数,名称为 "cloudbuild.yaml"。la-repo-function-1 cloudbuild.yaml文件中提到的),并使用Python 3.7与HTTP触发器和函数执行相等的 问候语_http
  4. 在该仓库上创建 Cloud Build 触发器,并将其指向使用 cloudbuild.yaml 作为配置。
  5. 在 main.py 中更改返回的 html 问候语,并将其推送到版本库。

预期结果。构建一个新函数并重新部署。

实际结果:Cloud Build被触发,并观察到一个新的ACTIVE版本,但仍然返回旧的内容。从控制台下载的源代码是旧的。但是,在不做修改的情况下,手动重新部署就可以了(只要进入编辑选项卡,点击部署就可以了)。

注:这个问题类似于 这个. 然而,这里我们使用的是Python 3.7,而不是Node.js的代码,并且按照 GC发行说明 Python 3.7已经完全发布,并没有进入测试版。

那么是BUG还是我遗漏了什么?

python-3.x google-cloud-platform google-cloud-functions google-cloud-build google-cloud-repository
2个回答
1
投票

这个问题在Google的问题跟踪器中被跟踪。此处,在哪里处理。解决完毕后,应该会有一个好的答案。


0
投票

解决方法已经找到了,只需将现有的 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']

换句话说,source param是必须的(但它的存在不会被自动验证)

© www.soinside.com 2019 - 2024. All rights reserved.