繁体   English   中英

gcloud deploy 永远不会完成更新服务

[英]gcloud deploy never finish with Updating service

我正在尝试将 python 应用程序部署到 App Engine。 我之前已经部署过这个应用程序,但出于某种原因,现在它上传了文件,但随后写入了Updating service [default].../并且永远不会完成。

我正在使用 Windows 10,几分钟后我能看到它运行的是ERROR: (gcloud.app.deploy)

我运行的命令是gcloud app deploy --project my-proj -v 1 --quiet server/app.yaml

我在服务器子目录中有服务器端应用程序。

任何想法如何诊断这个问题?

UPDATE1我已经运行带有调试标志的命令,我看到它每 5 秒出现一次:

Updating service [default].../DEBUG: Received operation: [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e]

DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

Updating service [default]...-DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

Updating service [default]...\DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

Updating service [default].../DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

Updating service [default]...|DEBUG: Operation [apps/my-app/operations/b0647556-93af-4fd8-b0a7-f4ae43393e1e] not complete. Waiting 5s.

在我们的例子中,这是由导致 500 错误的软件错误引起的 - 例如,我相信在部署过程中 App Engine 会进行简单的健康检查以验证应用程序是否已成功部署,如果失败,它将永远循环。

我遇到了同样的问题,所以我的解决方案是从控制台( https://console.cloud.google.com )部署应用程序。 我在源代码文件夹中克隆了我的 git repo,安装项目后,我运行命令:gcloud app deploy --project [google-project-name]

这发生在我的 v2 端点上。 为了向后兼容,我在 web.xml 中添加了_ah/spi的旧 Servlet 映射。 这导致应用程序卡在Updating service [default]...并且永远不会完成。 看起来只有_ah/api的映射可以向后兼容,所以在 appengine 端肯定有一些后端魔法。

我有完全相同的问题。 这是我发现的:

我遵循了@Daniel Hernandez 的建议,并从 Cloud Shell 内的克隆 git 存储库上传了该应用程序。 有效。

然后我继续克隆了在 cloud shell 中工作的同一个存储库,但我将它克隆到了我计算机的另一个文件夹中。 我部署了该应用程序,没有任何问题。

这让我产生了怀疑,所以我开始研究哪些文件与这两种设置不同。 我发现在我的原始设置(失败的那个)中,我有两个额外的文件夹:

env/
lib/

这些对应于 virtualenv 的本地开发文件夹和额外的库。 请注意,这些文件被.gitignoreapp.yamlskip_files指令“忽略”。

我删除了这两个目录并尝试再次上传并且它起作用了。

如果你在我的情况下有一个新项目,它是一个标志

我有:

"deploy": "gcloud app deploy --project quantified-self-io --quiet --promote --stop-previous-version --version=v1 --verbosity=info",

标志--stop-previous-version导致了我的问题,因为我想没有运行 prev 版本。

更新 Gcloud SDK 为我解决了这个问题: gcloud components update

根据https://stackoverflow.com/a/52428069/219657

可能有很多不同的事情会导致这个问题,所以即使在 OP 的案例中已经有一个已经被接受的答案,我认为值得记录关于这个问题的其他可能性。

在我的例子中,它的发生是因为 pip 相对较新的回溯依赖解析器,由于我的requirements.txt文件中的一些依赖不足,导致 pip 下载某些包的许多版本以确定正确的依赖关系。 这可能非常慢,并导致构建超时。 更好地约束我的依赖关系解决了这个问题。

您可以在按“Cloud Build”资源类型过滤的 Cloud Logs Explorer 中查看构建正在执行的操作。 如果有办法通过 CLI 访问这些日志 stream 我不确定,但如果是这样的话,我很乐意得到启发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM