制限およびライブラリの変更点¶
このトピックでは、Streamlitの機能がSnowflakeとオープンソースライブラリで異なる動作をする場合の制限と機能の動作変更について説明します。
サポートされていないStreamlit機能¶
以下のStreamlit機能は、 Streamlit in Snowflake ではサポートされていません。
-
st.set_page_config
コマンドのpage_title
,page_icon
,menu_items
プロパティには対応していません。 アンカーリンク
Streamlit in Snowflake で外部リソースを読み込む際の制限¶
すべての Streamlit in Snowflake アプリは、 コンテンツ・セキュリティ・ポリシー (CSP) の中で実行され、どのリソースをロードできるかを制限します。Snowflakeは、外部ドメインからのスクリプト、スタイル、フォント、iframe埋め込みなどのコードの読み込みをブロックします。ただし、Mapboxからのリソースのサブセットのロードはサポートされています。
st.map または st.pydeck_chart Streamlitコマンドを使用する場合、Mapboxはマップコンテンツのレンダリング時にマップタイルを提供します。Mapboxはサードパーティのアプリケーションであり、Snowflakeの 外部製品規約 が適用されます。
外部ドメインからの画像やメディアの読み込みは、 Streamlit in Snowflake ではサポートされていますが、 Snowflake Native App Framework ではサポートされていません。
例えば、以下のコードは Python エラーなしで実行されますが、スクリプトはブラウザに読み込まれず、実行もされません。
# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
CSP はまた、 eval()
のような、一般に安全でないと考えられているフロントエンドの呼び出しもブロックします。
注釈
アプリ開発者は、 Snowflake's Shared Responsibility Model に従って、セキュリティチェックと Streamlit in Snowflake アプリコードのソフトウェアサプライチェーンに責任を負います。
その他の Streamlit in Snowflake 制限事項¶
Streamlit in Snowflake にはさらに以下の制限があります:
外部ステージの使用はサポートされていません。
複製はサポートされていません。
.soファイルの使用には非対応です。
Streamlitアプリはデータ取得に制限がある¶
Streamlit in Snowflake および Snowflake Native App で実行される Streamlit アプリは、バックエンドとフロントエンドの間で交換されるメッセージのサイズに 32-MB の制限があります。32 MB を超えるクエリは以下のエラーを返します。
MessageSizeError: Data Size exceeds message limit
この制限を回避するには、Streamlitアプリを32 MB よりも小さな単位でデータを取得するように設計してください。
Streamlit in Snowflake はクライアント側の暗号化を使用する内部ステージのみをサポートします¶
Streamlit in Snowflake エディターでは サーバー側の暗号化を使用する名前付きステージ上のファイルから STREAMLIT オブジェクト を作成することをサポートしていません。この場合、 Snowsight はエラーを返します。
st.cache_data
および st.cache_resource
は完全にはサポートされていません¶
st.cache_data および st.cache_resource は、 Streamlit in Snowflake では完全にサポートされていません。キャッシュは単一のセッション内でのみ機能します。キャッシュされた値は他のセッションに引き継がれず、Streamlitアプリの異なるユーザー間で共有することはできません。
st.file_uploader
でアップロードされるファイルの上限は200 MB です¶
st.file_uploader を使用する場合、アップロードできるファイルはそれぞれ200 MB までです。この構成は、現在 Streamlit in Snowflake ではサポートされていません。データファイルが大きい場合は、データを小さいバッチで処理するか、別のアップロード方法をご利用ください。
Streamlit in Snowflake でクエリパラメーターを扱う際の変更点¶
Streamlit in Snowflake の st.query_params については、 URL の各クエリパラメーターキーに streamlit-
のプレフィックスが付加されます。st.query_paramsを使用して値を取得またはセットする場合は、このプレフィックスは含まれません。
たとえば、次の URL を考慮します。
https://app.snowflake.com/org/account_name/#/streamlit-apps/DB.SCHEMA.APP_NAME?streamlit-first_key=one&streamlit-second_key=two
この URL のパラメーターは、st.query_paramsで以下のキーと値のペアとしてアクセスできます。
{
"first_key" : "one",
"second_key" : "two"
}
詳細情報については、 st.query_params をご参照ください。