Appengine 停留在“正在更新服务 [默认]...”

Appengine 停留在“正在更新服务 [默认]...”

我在 appengine 上使用 nodejs。周二我们有一个非常稳定的应用程序框架,但到周五尝试部署后它就完全崩溃了。我们对前端代码做了一些小改动,但我认为没有什么能阻止实例启动。

以下是重现的步骤。

  1. gcloud --project "{appname}" preview app deploy

  2. 日志显示 npm 安装、容器构建等。

  3. 等待Updating service [default]...5 分钟

  4. 出现错误并失败。

错误:(gcloud.preview.app.deploy)错误响应:[13] 启动虚拟机时超时。应用程序代码可能不健康。(0/1 已准备就绪,1 仍在部署中)。

我尝试将存储库恢复到我们部署稳定时的状态,但没有效果。这让我觉得 GCP 出了问题。

我尝试删除所有当前版本然后部署,但无济于事。

答案1

收到此错误时,您可以查看 Cloud Console 中的 crash.log日志查看器(日志记录 -> 日志)针对您的特定服务/版本,通常会告诉您确切发生了什么。在我重现相同错误的情况下,crash.log 会向我显示 NPM 的输出,告诉我出现了“语法错误:意外标识符”。

当然,情况可能有所不同,但这可以告诉您问题是否与您的应用程序代码有关,或者是否有更险恶的事情发生。

答案2

对我来说答案是不同的...版本开始创建但从未完成创建过程。如果您进入 AppEngine 服务的日志(选中所有选项以查看所有日志),就会看到这种情况,您可能会注意到“容器调用 exit(1)”。

就我而言,我发现运行“gcloud init”来重置我的凭据很有帮助。希望这对其他人有所帮助。

划掉...我发现 Cloud Build API 只是方式落后/缓慢。这种情况已经持续了几个小时。我刚刚注意到,晚上前几个小时的 4 个版本同时出现在我的仪表板上。显然没有办法取消之前的部署?具有讽刺意味的是,一旦 Google 的构建服务落后每个人可能会开始发送垃圾邮件/重试他们的部署,问题会变得更加严重......非常糟糕。

答案3

检查你的 package.json 是否有此部分

"cloud-repo-tools": {
"test": {
  "app": {
    "msg": "Hello, world!"
  }
},
"requiresKeyFile": true,
"requiresProjectId": true
}

“msg”部分包含健康检查可以查找的一些字符串。我还没有找到这方面的文档,所以如果有人找到的话,我很乐意看看。

相关内容