[英]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 的本地开发文件夹和额外的库。 请注意,这些文件被.gitignore
和app.yaml
的skip_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
可能有很多不同的事情会导致这个问题,所以即使在 OP 的案例中已经有一个已经被接受的答案,我认为值得记录关于这个问题的其他可能性。
在我的例子中,它的发生是因为 pip 相对较新的回溯依赖解析器,由于我的requirements.txt
文件中的一些依赖不足,导致 pip 下载某些包的许多版本以确定正确的依赖关系。 这可能非常慢,并导致构建超时。 更好地约束我的依赖关系解决了这个问题。
您可以在按“Cloud Build”资源类型过滤的 Cloud Logs Explorer 中查看构建正在执行的操作。 如果有办法通过 CLI 访问这些日志 stream 我不确定,但如果是这样的话,我很乐意得到启发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.