Streamlitアプリの作成

前提条件

Snowflake CLI を使用してStreamlitアプリを作成する前に、次の前提条件を満たす必要があります。

  • Streamlitアプリの作成と使用に必要な権限 に記載されているように、アカウントに正しい権限があることを確認する。

  • Streamlitアプリのファイルをアップロードする名前付きステージを作成できるか、そのアクセス権があることを確認する。

Streamlitアプリをブートストラップする

snow init コマンドを実行すると、Streamlitアプリの作成に役立つサンプルファイルの入ったローカルディレクトリが作成されます。このコマンドを実行すると、 Snowflake CLI は次のディレクトリ構造を作成します。

example_streamlit/            - project name (default: example_streamlit)
  snowflake.yml               - configuration for snow streamlit commands
  environment.yml             - additional config for Streamlit, for example installing packages
  streamlit_app.py            - entrypoint file of the app
  pages/                      - directory name for Streamlit pages (default pages)
  common/                     - example “shared library”

Streamlitアプリを初期化するには、次のコマンドを入力します:

snow init new_streamlit_project --template example_streamlit -D query_warehouse=dev_warehouse -D stage=testing
Copy

注意

プロジェクトディレクトリ内のファイルは Snowflake CLI によって処理され、他の snow streamlit コマンドを実行するときにSnowflakeにアップロードされる可能性があります。プロジェクトディレクトリのファイル内に機密情報を保存する場合は、注意が必要です。

ファイル構造の詳細については、 ローカルファイルシステムでのStreamlitファイルの作成 をご参照ください。

Streamlitアプリのプロジェクト定義の作成

Snowflakeの各Streamlitアプリには、 snowflake.yml プロジェクト定義ファイルを含める必要があります。Streamlitは、プロジェクト定義ファイルごとに1つのアプリケーションに制限されます。

snowflake.yml プロジェクト定義ファイルのサンプルは次のとおりです。

definition_version: 2
entities:
  my_streamlit:
    type: streamlit
    identifier: streamlit_app
    stage: my_streamlit_stage
    query_warehouse: my_streamlit_warehouse
    main_file: streamlit_app.py
    pages_dir: pages/
    external_access_integrations:
      - test_egress
    secrets:
      dummy_secret: "db.schema.dummy_secret"
    imports:
      - "@my_stage/foo.py"
    artifacts:
      - common/hello.py
      - environment.yml
Copy

次の表は、Streamlitプロジェクト定義のプロパティについて説明しています。

Streamlitプロジェクトの定義プロパティ

プロパティ

定義

識別子

optional, string

エンティティの任意のSnowflake識別子。この値には次のような形式があります。

  • 文字列識別子テキスト

    identifer: my-streamlit-id
    
    Copy

    引用符で囲まれていない識別子と引用符で囲まれた識別子の両方がサポートされています。引用符で囲まれた識別子を使用するには、 YAML の値に引用符を含めます(例えば:codenowrap:’”My Streamlit Application”’)。

  • オブジェクト

    identifer:
      name: my-streamlit-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    注釈

    schema か:codenowrap:database を指定し、 name プロパティで完全修飾名(mydb.schema1.my-app など)を使用すると、エラーが発生します。

タイプ

optional, string

streamlit である必要があります。

コメント

optional, string

Streamlitダッシュボードにコメントします。

タイトル

optional, string

Streamlit ダッシュボードの人間が読めるタイトル。

ステージ

optional, string

アプリの成果物が保存されるステージ。デフォルト: なし。

query_warehouse

required, string

アプリをホストするSnowflakeウェアハウス。

main_file

optional, string

Streamlitアプリの エントリポイントファイル。デフォルト: 「streamlit_app.py」。

pages_dir

optional, string

Streamlit pages。デフォルト: 「pages」。

アーティファクト

必須文字列シーケンス

デプロイメント成果物に含める必要がある追加ファイルのリスト。