【问题标题】:ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build XXXXXXXXXXXX status: FAILURE错误:(gcloud.app.deploy)错误响应:[9] Cloud build XXXXXXXXXXXX 状态:FAILURE
【发布时间】:2019-06-16 07:50:38
【问题描述】:

我有这个错误将近一个小时,但找到了一个解决方案,导致了一个令人担忧的两难境地。该解决方案让我们意识到,当任务队列中有一个任务要由要替换的服务器版本提供服务时,一个无法运行 gcloud app deploy

错误是:ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build XXXXXXXXXXXX status: FAILURE xxxx 部分是一些自动生成的 base64 值。

解决方案是:删除任务队列中的所有任务

问题:是否有解决方法,或者我必须在部署之前删除任务队列中的所有任务(就像我一样)?

详情:服务器是用nodejs编写的。

【问题讨论】:

  • 不是重新部署相同版本(尤其是在生产中)不是一个好主意的唯一原因,请参阅stackoverflow.com/questions/40192557/…
  • 感谢@DanCornilescu,对链接的了解非常有帮助。我还认为您应该为此问题提供另一个量身定制的答案,因为开发人员将使用上面的错误消息进行搜索,并且它与共享链接中的错误消息有很大不同,即使原因似乎与您在其中提到的相关。
  • 如果命令中不包含版本ID,gcloud app deploy --no-promote是否会生成版本ID?
  • 就像你一样 discovered - 是的

标签: google-app-engine google-cloud-platform gcloud task-queue google-tasks-api


【解决方案1】:
  1. 您必须为您的项目启用结算功能。

Setup billing account

【讨论】:

  • 我设置了我的结算帐户,但没有解决问题。
  • 如果您看到,请确保在标题弹出窗口中点击“验证”。
【解决方案2】:

我遇到了同样的问题,返回并正确投保了账单帐户设置正确,然后它对我有用...

【讨论】:

    【解决方案3】:

    我怀疑,当目标是要删除的版本的任务时清空任务队列的需要可能是由在这种情况下会发生的虚拟“线头阻塞”驱动的,影响其他服务/版本项目(任务队列在项目之间共享),甚至可能是相关的 GAE 基础设施功能。

    从根本上重写某个应用程序/服务版本有点违背版本控制的全部目的(想象一下 git 允许您更改与某个 SHA 签名关联的提交/引用点的内容!)。但在某些情况下——例如当版本实际用于实现某个执行环境时——这是故意的。

    您所描述的并不是 GAE 部署的唯一问题 重写某个版本的应用程序/服务(我以前没有考虑过,顺便说一句,谢谢你!)。另一个在Continuous integration/deployment/delivery on Google App Engine, too risky? 中被捕获。

    如果您的版本重写部署实际上是尝试实施部署环境,您可能还需要查看与Advantages of implementing CI/CD environments at GAE project/app level vs service/module level? 相比的其他几个潜在(恕我直言)替代方案

    【讨论】:

    • 嗯不知道这将如何解决问题。
    【解决方案4】:

    这发生在我从 bash 升级到 zsh 后,将 #!/bin/bash 添加到部署脚本的顶部解决了该问题。

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2018-02-14
      • 2021-08-15
      • 2019-03-04
      • 2019-03-27
      相关资源
      最近更新 更多