创建 Streamlit 应用程序

本主题介绍如何从现有的 Streamlit 应用程序代码部署 Streamlit in Snowflake 应用程序。如果您是 Streamlit in Snowflake 新用户,并想先尝试入门应用程序,请参阅 开始使用 Streamlit in Snowflake

准备工作:

  • 确保满足所需的 先决条件

  • 选择适用于您的应用程序的 :doc:`运行时环境 <runtime-environments>`(容器或仓库)。

  • requirements.txtpyproject.tomlenvironment.yml 文件中准备您的 依赖项

  • 查看应用程序源文件的预期 文件组织

部署应用程序代码

如果您的本地计算机或 Snowflake 暂存区上已有 Streamlit 应用程序,请使用以下方法之一创建源文件中的 STREAMLIT 对象。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Streamlit

  3. 选择 + Streamlit App

  4. 输入应用程序的名称。

  5. App location 下拉列表中,选择应用程序的数据库和架构。

  6. 为应用程序配置运行时:

    要创建容器运行时应用程序,请进行以下选择:

    • 选择 Run on container

    • 选择要在其中运行应用程序的计算池。

    • 选择要在其中运行应用程序查询的查询仓库。

    要创建仓库运行时应用程序,请进行以下选择:

    • 选择 Run on warehouse

    • 选择要在其中运行应用程序的仓库。

  7. 选择 Create

  8. 在编辑器中,将起始代码替换为您自己的应用程序代码。您可以直接粘贴代码或上传文件:

    • 要上传文件,请选择 + (Add) » Upload file,选择文件,然后选择 Upload

    • 要创建其他文件(例如 pyproject.toml),请选择 + (Add) »Create new file

  9. 选择 Run

查看 Streamlit 应用程序

有关查看 Streamlit 应用程序所需的权限的信息,请参阅 查看 Streamlit 应用程序所需的权限

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Streamlit

  3. 选择要查看的 Streamlit 应用程序。

如果正在查看多页面 Streamlit 应用,请选择选项卡以查看其他页面。

使用 GitHub 操作设置 CI/CD

您可以使用 Snowflake CLI 和 `GitHub 操作<https://docs.github.com/en/actions>`_ 自动从 Git 存储库中部署 Streamlit in Snowflake 应用程序。您可以对其他 CI/CD 提供商使用类似的方法。

先决条件

  • GitHub 存储库包含 Streamlit 应用程序文件以及 snowflake.yml

  • SNOWCLI_PW 仓库设置中配置的 GitHub 密钥。

示例工作流程

在存储库中创建 .github/workflows/deploy.yml 文件:

name: Deploy via Snowflake CLI

on:
  push:
    branches:
      - main

env:
  PYTHON_VERSION: '3.12'

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    environment: dev
    steps:
      - name: 'Checkout GitHub Action'
        uses: actions/checkout@v3

      - name: Install Python
        uses: actions/setup-python@v4
        with:
          python-version: ${{ env.PYTHON_VERSION }}

      - name: 'Install Snowflake CLI'
        shell: bash
        run: |
          python -m pip install --upgrade pip
          pip install snowflake-cli

      - name: 'Create config'
        shell: bash
        env:
          SNOWFLAKE_PASSWORD: ${{ secrets.SNOWCLI_PW }}
        run: |
          mkdir -p ~/.snowflake
          cp config.toml ~/.snowflake/config.toml
          echo "password = \"$SNOWFLAKE_PASSWORD\"" >> ~/.snowflake/config.toml
          chmod 0600 ~/.snowflake/config.toml

      - name: 'Deploy the Streamlit app'
        shell: bash
        run: |
          snow streamlit deploy --replace

提交并推送文件以触发工作流程。

有关更多信息,请参阅 GitHub Actions 文档 (https://docs.github.com/en/actions)。