错误:(gcloud.app.deploy) 错误响应:[9] Flex 操作项目/.../regions/us-central1/operations/... 错误 [FAILED_PRECONDITION]

问题描述

我是 Google Cloud 的新手,我只想部署我的第一个 Streamlit 网络应用程序。我在命令行上使用 Windows。我已经做了谷歌云“Hello World”示例,它没有任何错误

当我部署 streamlit web 应用程序时,我在等待“更新服务器”3-4 分钟后出现以下错误

ERROR: (gcloud.app.deploy) Error Response: [9] Flex operation projects/XXXX/regions/us-central1/operations/f0c89d22-2d09-410d-bf99-fc49ad337800 error [Failed_PRECONDITION]: An internal error occurred while processing task /app-engine-flex/flex_await_healthy/flex_await_healthy>2021-05-27T06:13:50.278Z10796.jc.0: 2021-05-27 06:15:32.787 An update to the [server] config option section was detected. To have these changes be reflected,please restart streamlit.

这是我的 app.yaml 文件

service: default
runtime: custom
env: flex
manual_scaling: 
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

解决方法

对于不熟悉的人来说,在问题中包含参考是一种很好的做法,例如流线型。我假设是这样的:https://streamlit.io/

我怀疑 (!) Streamlit(默认情况下)不满足 App Engine 的要求:

  1. 端口 8080 上的网络应用
  2. 没有额外的 (apt get) 依赖项
  3. 没有基于 C 的依赖

Streamlit wiki 引用了各种 deployment alternatives,包括 Google Kubernetes Engine(又名 GKE)(见下文)但不包括 App Engine。

这并不意味着它不能在 App Engine(标准)上运行,只是它可能不是微不足道的。

GKE 说明参考了安装 Cython 优化 c 编译器,这让我对使用 App Engine 标准感到犹豫。除非您熟悉 Kubernetes,否则我不建议您尝试 GKE,因为它更复杂。

因此,如果有 Streamlit 经验的其他人参与进来会有所帮助,但在那之前,您可能希望考虑使用 Streamlit sharing

如果有人将 Streamlit 部署到 App Engine(灵活?)或者 Cloud Run 可以提供概述,将会很有帮助。

,

发布我的评论作为答案以获得更好的可见性和总结。

在这种特殊情况下,错误是由 Dockerfile 中的错误引起的。

您可以按照以下步骤修复或缩小错误范围:

  • 尝试部署测试应用以查看配置差异。 Example
  • 在使用 gcloud components update 命令更新 gcloud 后尝试部署您的应用。
  • 确保您以管理员身份运行 SDK。
  • 如果错误再次出现,请运行 gcloud app deploy app.yaml --verbosity=debug 以尝试获取更多指定的错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...