您如何在 App Engine (GCP) 上部署 Streamlit 应用程序?

Myc*_*cha 3 deployment google-app-engine google-cloud-platform streamlit

我的目标是部署一个用 Sreamlit 编写的简单网络应用程序,例如

app.py

import streamlit as st
st.title('Hello World!')
Run Code Online (Sandbox Code Playgroud)

我可以通过streamlit run app.py在我的命令行中运行在我的本地机器上运行它。

但是,我不确定如何修改 GCP 的 App Engine 中的 app.yaml 文件来部署它。

有什么建议吗?

bhi*_*ito 7

您可以为此使用 App Engine 柔性环境,因为您可以指定自定义运行时。要遵循的步骤将是:

  1. 创建 Dockerfile:

    FROM python:3.7
    EXPOSE 8080
    WORKDIR /app
    COPY requirements.txt ./requirements.txt
    RUN pip3 install -r requirements.txt
    COPY . .
    CMD streamlit run app.py --server.port 8080
    
    Run Code Online (Sandbox Code Playgroud)

    我已经更新了 Dockerfile,因为 App Engine flex 要求服务器侦听端口 8080。

  2. 使用所需的依赖项创建 requirements.txt 文件:

    streamlit
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建 app.yaml 文件:

    runtime: custom
    env: flex
    
    Run Code Online (Sandbox Code Playgroud)

    app.yaml 和 Dockerfile 必须在同一个文件夹中。上面的 app.yaml 设置非常基础,更多信息可以在文档中找到。

然后要部署,您需要使用以下 gcloud 命令:gcloud app deploy