Streamlitアプリの作成

このトピックでは、既存のStreamlitアプリのコードから|sis|アプリをデプロイする方法について説明します。|sis|の利用が初めてで、まずスターターアプリを試してみたい場合は、:doc:`/developer-guide/streamlit/getting-started/overview`を参照してください。

始める前に:

  • 必要な:ref:`前提条件<label-streamlit_prereqs>`を満たしていることを確認します。

  • アプリの:doc:`ランタイム環境<runtime-environments>`(コンテナまたはウェアハウス)を選択します。

  • requirements.txtpyproject.toml、または:file:`environment.yml`ファイルで:doc:`依存関係<dependency-management>`を準備します。

  • アプリのソースファイルについて想定される:doc:`ファイル構成<file-organization>`を確認します。

アプリコードのデプロイ

ローカルマシン上または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. エディターで、スターターコードを独自のアプリコードに置き換えます。コードを直接貼り付けるか、ファイルをアップロードできます。

    • ファイルをアップロードするには、:ui:`+`(追加) » :ui:`Upload file`を選択し、ファイルを選んで:ui:`Upload`を選択します。

    • 追加のファイル(:file:`pyproject.toml`など)を作成するには、:ui:`+`(追加) » :ui:`Create new file`を選択します。

  9. Run を選択します。

Streamlitアプリを表示する

Streamlitアプリの表示に必要な権限については、 Streamlitアプリの表示に必要な権限 を参照してください。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Projects » Streamlit を選択します。

  3. 表示したいStreamlitアプリを選択します。

マルチページのStreamlitアプリを表示する場合は、タブを選択して追加ページを表示します。

GitHub Actionsを使用したCI/CDのセットアップ

|sf-cli|および`GitHub Actions<https://docs.github.com/en/actions>`_を使用して、Gitリポジトリから|sis|アプリを自動的にデプロイできます。他のCI/CDプロバイダーでも、同様のアプローチを使用できます。

前提条件

  • Streamlitアプリファイルと:file:`snowflake.yml`を含むGitHubリポジトリ。

  • GitHubリポジトリ設定で構成された``SNOWCLI_PW``シークレット。

ワークフロー例

リポジトリ内に:file:`.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 ドキュメンテーション をご参照ください。