Einschränkungen und Änderungen der Bibliothek¶
Dieses Thema beschreibt Einschränkungen und Änderungen im Verhalten von Features, wenn ein Streamlit-Feature in Snowflake anders funktioniert als in der Open-Source-Bibliothek.
Nicht unterstützte Streamlit-Features¶
Die folgenden Streamlit-Features werden in Streamlit in Snowflake nicht unterstützt:
-
Die Eigenschaften
page_title,page_iconundmenu_itemsdes Befehlsst.set_page_configwerden nicht unterstützt. Anker-Links
Beschränkungen beim Laden externer Ressourcen in Streamlit in Snowflake¶
Alle Streamlit in Snowflake-Anwendungen laufen innerhalb der Content Security Policy (CSP), die einschränkt, welche Ressourcen geladen werden können. Snowflake blockiert das Laden von Code – einschließlich Skripten, Stilen, Schriftarten und Iframe-Einbettung – von jeder externen Domain. Das Laden einer Teilmenge von Ressourcen aus Mapbox oder Carto wird jedoch unterstützt.
Wenn Sie die st.map- oder st.pydeck_chart Streamlit-Befehle in der Streamlit-Version 1.45.1 oder niedriger verwenden, stellt Mapbox die Kartenkacheln beim Rendern von Karteninhalten bereit. Für Streamlit-Versionen 1.46.1 und höher ist Carto ein standardmäßiger Anbieter. Mapbox und Carto sind Anwendungen von Drittanbietern und unterliegen den Bedingungen für externe Angebote von Snowflake.
Das Laden von Images oder Medien von externen Domains wird in Streamlit in Snowflake unterstützt, nicht aber in Snowflake Native App Framework.
Der folgende Code wird beispielsweise ohne einen Python-Fehler ausgeführt, aber das Skript wird im Browser nicht geladen oder ausgeführt:
# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
CSP blockiert auch Front-End-Aufrufe, die allgemein als unsicher gelten, wie z. B. eval().
Bemerkung
App-Entwickler sind für die Sicherheitsprüfungen und die Software-Lieferkette von Streamlit in Snowflake-App-Code gemäß dem Snowflake’s Shared Responsibility Model verantwortlich.
Beschränkungen bei Verwendung von kundenspezifischen Komponenten in Streamlit in Snowflake¶
Derzeit unterstützt Streamlit in Snowflake nur kundenspezifische Komponenten, bei denen keine Aufrufe von externen Services erforderlich sind.
Bemerkung
Von einer Drittanbieterquelle importierte Komponenten unterliegen der für diese Komponente geltenden Lizenz. Sie müssen sicherstellen, dass Ihre Nutzung einer Komponente durch deren Lizenz erlaubt ist.
Snowflake erstellt oder wartet keine Komponenten von Drittanbietern, die Sie möglicherweise in Streamlit in Snowflake importieren. Die Verwendung solcher Komponenten erfolgt auf eigenes Risiko und unterliegt keinen Gewährleistungen, Service Level Agreements oder ähnlichen Garantien seitens Snowflake.
Zusätzliche Streamlit in Snowflake-Beschränkungen¶
Streamlit in Snowflake hat die folgenden zusätzlichen Beschränkungen :
Die Verwendung externer Stagingbereiche wird nicht unterstützt.
Replikation wird nicht unterstützt
Die Verwendung von .so-Dateien wird nicht unterstützt.
Streamlit-Apps haben eine Beschränkung für die Anzeige von Daten.
st.cache_data und st.cache_resource werden nicht vollständig unterstützt.
st.file_uploader hat ein Limit von 200 MB für hochgeladene Dateien.
Streamlit-Apps haben eine Beschränkung für die Anzeige von Daten¶
Streamlit-Anwendungen, die unter Streamlit in Snowflake und Snowflake Native Apps laufen, haben eine 32-MB-Begrenzung für die Größe der zwischen dem Backend und dem Frontend ausgetauschten Nachrichten. Wenn Sie versuchen, mehr als 32 MB Daten mit einem einzigen Streamlit-Befehl, wie st.dataframe, anzuzeigen, tritt der folgende Fehler auf:
MessageSizeError: Data Size exceeds message limit
Um dieses Limit zu vermeiden, sollten Sie Ihre Streamlit-App so gestalten, dass sie Daten in kleineren Schritten als 32 MB anzeigen. Es gibt keine explizite Begrenzung für die Größe einer Abfrage, die Sie ausführen können, oder die Menge an Daten, die im Arbeitsspeicher vorhanden sein kann.
Streamlit in Snowflake unterstützt nur interne Stagingbereiche, die eine clientseitige Verschlüsselung verwenden.¶
Der Streamlit in Snowflake Editor unterstützt nicht das Erstellen eines STREAMLIT-Objekts aus Dateien in einem benannten Stagingbereich, der serverseitige Verschlüsselung verwendet. In diesem Fall gibt Snowsight einen Fehler zurück.
st.cache_data und st.cache_resource werden nicht vollständig unterstützt¶
st.cache_data und st.cache_resource werden in Streamlit in Snowflake nicht vollständig unterstützt. Das Caching funktioniert nur innerhalb einer einzelnen Sitzung. Zwischengespeicherte Werte können nicht auf andere Sitzungen übertragen und von verschiedenen Benutzern einer Streamlit-App gemeinsam genutzt werden.
st.file_uploader hat ein Limit von 200 MB für hochgeladene Dateien¶
Wenn Sie st.file_uploader verwenden, können Sie Dateien hochladen, die auf jeweils 200 MB begrenzt sind. Diese Konfiguration wird derzeit in Streamlit in Snowflake nicht unterstützt. Bei größeren Dateien sollten Sie die Daten in kleineren Stapeln verarbeiten oder alternative Upload-Methoden verwenden.
Änderungen bei der Arbeit mit Abfrageparametern in Streamlit in Snowflake¶
Für st.query_params in Streamlit in Snowflake wird ein Präfix streamlit- zu jedem Abfrageparameterschlüssel in der URL hinzugefügt. Dieses Präfix ist nicht enthalten, wenn Sie st.query_params verwenden, um einen Wert zu erhalten oder zu setzen.
Betrachten Sie beispielsweise die folgende URL:
https://app.snowflake.com/org/account_name/#/streamlit-apps/DB.SCHEMA.APP_NAME?streamlit-first_key=one&streamlit-second_key=two
Die Parameter in dieser URL sind in st.query_params als die folgenden Schlüssel-Wert-Paare zugänglich:
{
"first_key" : "one",
"second_key" : "two"
}
Weitere Informationen finden Sie unter st.query_params.