有没有一种方法可以在不使用 Docker 的情况下在 Azure 应用服务上部署 Streamlit 应用程序? 互联网上的所有指南都提到 Docker 虚拟化,而理论上,Azure Web App 应该能够从 Azure Repo 自动部署代码。我在 Azure 配置选项卡中使用“streamlit run app.py”作为启动命令,但什么也没发生。
您可以通过设置普通的 Steamlit 应用程序并添加应用程序服务特定配置来实现此目的。具体步骤如下:
创建定价层 B1 或更高级别的 Azure 应用服务。免费版本(F1)不支持Streamlit所需的websocket。
为项目创建一个文件夹。并添加
requirements.txt
并添加以下内容。
流光溢彩
将此文件夹部署到 Azure 应用服务。
进行以下配置更改。在
Configuration > General Settings > Startup command
下提供以下值
python -m Streamlit hello --server.port 8000 --server.address 0.0.0.0
在 Azure 应用服务配置中启用 Web socket。
Azure 仅允许 pip 二进制文件在用作模块时运行,而不是直接运行。 我们提到端口是因为默认情况下服务侦听端口 8000。我们提到 server.address 为 0.0.0.0,以便它可以为来自 azure 基础设施的所有传入请求提供服务。
要使用它来运行您的应用程序,您需要将“hello”替换为“run app.py”(假设应用程序名称为app.py)。对我来说,当我将代码放在 gitHub 上并登录时,这是有效的,但当我通过带有 Azure 扩展的 VSCode 或通过 gitlab 部署时,我都失败了。当我完全按照这个视频做时,它起作用了:https://www.youtube.com/watch?v=2toRzAYT8yo。
检查Python版本并更新Web应用程序中的Python版本(同时配置Web应用程序)
如果您有任何疑问,请通过电子邮件与我联系。我会指导你:)