アプリケーションパッケージへのStreamlitアプリの追加¶
このトピックでは、 Streamlit アプリをアプリケーションパッケージに追加する方法について説明します。
アプリケーションでのStreamlitの使用について¶
Streamlit は、データサイエンスと機械学習アプリケーションを開発するためのオープンソースのPythonフレームワークです。 Snowflake Native App Framework を使用すると、 Snowflake Native App にStreamlitアプリを組み込んで、ユーザーとのインタラクションやデータ可視化を提供することができます。
注釈
サポートされていないStreamlit機能については、 サポートされていないStreamlit機能 および Native App FrameworkでStreamlitを使用する際の制限事項 をご参照ください。
Streamlitアプリのディレクトリ構造例¶
他のPythonモジュールと同様に、Streamlitアプリをアプリケーションパッケージに追加するには、Streamlitのコードファイルを名前付きステージにアップロードする必要があります。ステージにファイルをアップロードする方法については、 PUT をご参照ください。
Snowflake Native App の複数のバージョンに対応するため、以下のようなディレクトリ構造を使用して、Streamlitアプリや関連するアプリケーションファイルを管理することを検討してください。
@test.schema1.stage1:
└── /
├── manifest.yml
├── readme.md
├── scripts/setup_script.sql
└── code_artifacts/
└── streamlit/
└── environment.yml
└── streamlit_app.py
ただし、どのようなディレクトリ構造を使用するかは、使用する環境によって異なることに注意してください。
注釈
environment.yml
ファイルはStreamlitアプリのメインファイルと同じレベルにある必要があります。
相対パスに関する詳細については、 外部コードファイルの参照 をご参照ください
マニフェストファイルへのStreamlitアプリの追加¶
アプリケーションパッケージにStreamlitファイルを含めるには、 manifest.yml
ファイルに以下のエントリを追加します。
artifacts:
...
extension_code: true
...
extension_code: true
エントリは、アプリの拡張コードを有効にするために必要です。
configuration:
...
default_streamlit: app_schema.streamlit_app_na
...
default_streamlit: app_schema.streamlit_app_na
エントリは、Streamlitアプリを含むスキーマの場所を指定します。
セットアップスクリプトへのStreamlitアプリの追加¶
次の例では、セットアップスクリプト内で CREATE STREAMLIT を使用する方法を示します。
CREATE STREAMLIT app_schema.my_test_app_na
FROM '/code_artifacts/streamlit'
MAIN_FILE = '/streamlit_app.py';
GRANT USAGE ON SCHEMA APP_SCHEMA TO DATABASE ROLE app_public;
GRANT USAGE ON STREAMLIT APP_SCHEMA.MY_TEST_APP_NA TO DATABASE ROLE app_public;
この例では、 app_schema
という名前のスキーマ内にStreamlitオブジェクトを作成します。 CREATE STREAMLIT コマンドは、 FROM 句で指定されたディレクトリ内で、 MAIN_FILE 句にある指定されたStreamlitアプリを使用します。
サポートされていないStreamlit機能¶
以下のStreamlit機能は現在サポートされていません。
-
st.set_page_config コマンドの
page_title
とpage_icon
のプロパティはサポートされていません。 以下を含む カスタムコンポーネント。
以下を含む メディア要素。
以下を含む実験的機能。
unsafe_allow_html=True
を使用した安全ではない HTML は、 st.markdown ではサポートされていません。インターネット経由のネットワークアクセス
アンカーリンク
Native App FrameworkでStreamlitを使用する際の制限事項¶
このセクションでは、 Snowflake Native App Framework でStreamlitを使用する際の制限について説明します。
カスタムコンポーネントは非対応¶
カスタムコンポーネントはサポートされていません。
統合バージョン管理または CI/CD システムは非対応¶
Streamlitアプリはバージョン管理システムと統合されていません。アプリ履歴やコード変更は永続的であり、ロールバックすることはできません。
GitHub、 GitLab、その他のバージョン管理ベンダーとの統合はありません。
アプリの編集はアプリの閲覧者により表示可能¶
開発者が編集中にアプリを実行すると、アプリの閲覧者に変更が即座に反映されます。
AWSPrivateLink は非対応¶
AWS PrivateLink を使用してStreamlitアプリにアクセスすることはサポートされていません。
SeabornおよびMatlibplotライブラリのサポートなし¶
SeabornおよびMatlibplotライブラリはサポートされていません。どちらも、現在サポートされていないst.image()関数に依存しています。
Streamlitのトラブルシューティング¶
アプリが不明なエラーを表示する場合は、次のセクションで説明する解決策を確実に試してください。
利用規約の確認¶
SnowflakeでAnacondaが提供するStreamlitとパッケージを使用するには、 Snowflakeサードパーティ規約 に同意する必要があります。詳細については、 Anacondaのサードパーティパッケージの使用 をご参照ください。
ファイアウォール許可リスト¶
各Streamlitアプリは、固有のサブドメインを使用します。厳格なファイアウォールを使用している場合は、ファイアウォール許可リストに *.snowflake.app を追加します。このエントリをallowlistに追加すると、アプリは何の制限もなくSnowflakeサーバーと通信できるようになります。