0

重现步骤:

  1. 启用这些 API:Cloud Repositories、Cloud Build 和 Cloud Functions
  2. 创建存储库并从此处推送内容。这是一个简单的 Python Flask 应用程序,返回带有 cloudbuild.yaml 文件的简单 Html。
  3. 使用名为la-repo-function-1 的已创建存储库(在 cloudbuild.yaml 文件中引用)并使用带有 HTTP 触发器和函数的 Python 3.7创建 Cloud 函数以执行相等的greetings_http
  4. 在该存储库上创建 Cloud Build 触发器并将其指向使用 cloudbuild.yaml 作为配置。
  5. 更改 main.py 中返回的 html 问候语并将其推送到存储库。

预期结果:构建并重新部署了一个新功能。

实际结果:触发 Cloud Build 并观察到新的 ACTIVE 版本,但仍返回旧内容。从控制台下载的源代码是旧的。但是,无需更改即可手动重新部署(只需进入编辑选项卡并单击部署)。

注意:此问题与类似。但是,这里我们使用的是 Python 3.7 而不是 Node.js 代码,根据GC 发行说明, Python 3.7 已经完全发布,并且不是测试版。

那么这是一个错误还是我错过了什么?

4

2 回答 2

1

问题正在 Google 的问题跟踪器中进行跟踪,正在处理中。解决方案完成后,应该有一个好的答案。

于 2020-04-15T14:38:55.447 回答
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']

换句话说,源参数是强制性的(但是它的存在不会自动验证)

于 2020-04-16T12:06:31.953 回答