Limitations et modifications apportées à la bibliothèque¶
Cette rubrique décrit les limites et les changements de comportement des fonctions lorsqu’une fonction Streamlit fonctionne différemment dans Snowflake et dans la bibliothèque open-source.
Fonctions Streamlit non prises en charge¶
Les fonctions Streamlit suivantes ne sont pas prises en charge dans Streamlit in Snowflake :
-
Les propriétés
page_title
,page_icon
etmenu_items
de la commandest.set_page_config
ne sont pas prises en charge. Liens d’ancrage
Limitations lors du chargement de ressources externes dans Streamlit in Snowflake¶
Toutes les applications Streamlit in Snowflake s’exécutent dans la Politique de sécurité du contenu (CSP) qui restreint les ressources qui peuvent être chargées. Snowflake bloque le chargement de code , y compris les scripts, les styles, les polices et l’intégration d’iframes, à partir de n’importe quel domaine externe. Cependant, le chargement d’un sous-ensemble de ressources à partir de Mapbox est pris en charge.
Lorsque vous utilisez les commandes Streamlit st.map ou st.pydeck_chart, Mapbox fournit les vignettes de la carte lors du rendu du contenu de la carte. Mapbox est une application tierce et est soumise aux Conditions des conditions des offres externes Snowflake.
Le chargement d’images ou de médias à partir de domaines externes est pris en charge dans Streamlit in Snowflake, mais pas dans Snowflake Native App Framework.
Par exemple, le code suivant s’exécute sans erreur Python, mais le script n’est pas chargé ni exécuté dans le navigateur :
# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
Le CSP bloque également les appels frontaux qui sont généralement considérés comme dangereux, tels que eval()
.
Note
Les développeurs d’applications sont responsables des contrôles de sécurité et de la chaîne d’approvisionnement du code de l’application Streamlit in Snowflake conformément au modèle de responsabilité partagée de Snowflake.
Limitations Streamlit in Snowflake supplémentaires¶
Streamlit in Snowflake présente les limitations supplémentaires suivantes :
La mise en zone de préparation externe n’est pas prise en charge.
La réplication n’est pas prise en charge.
L’utilisation de fichiers .so n’est pas prise en charge.
Les applications Streamlit ont une limite pour la récupération des données.
st.cache_data et st.cache_resource ne sont pas entièrement pris en charge.
st.file_uploader a une limite de 200 MB pour les fichiers chargés.
Les applications Streamlit ont une limite pour la récupération des données¶
Les applications Streamlit exécutées dans Streamlit in Snowflake et dans Snowflake Native App sont contraints à une limite de taille de 32 MB pour les messages échangés entre le backend et le frontend. Les requêtes qui dépassent 32 MB renvoient l’erreur suivante :
MessageSizeError: Data Size exceeds message limit
Pour éviter cette limite, concevez vos applications Streamlit de manière à récupérer les données par incréments inférieurs à 32 MB.
Streamlit in Snowflake ne prend en charge que les zones de préparation internes qui utilisent le chiffrement côté client.¶
L’éditeur Streamlit in Snowflake ne prend pas en charge la création d’un objet STREAMLIT à partir de fichiers sur une zone de préparation nommée qui utilise le chiffrement côté serveur. Dans ce cas, Snowsight renvoie une erreur.
st.cache_data
et st.cache_resource
ne sont pas entièrement pris en charge¶
st.cache_data et st.cache_resource ne sont pas entièrement pris en charge dans Streamlit in Snowflake. La mise en cache ne fonctionne qu’au sein d’une même session. Les valeurs mises en cache ne peuvent pas être reportées sur d’autres sessions ni partagées entre différents utilisateurs d’une appli Streamlit.
st.file_uploader
a une limite de 200 MB pour les fichiers chargés¶
Lorsque vous utilisez st.file_uploader, vous pouvez charger des fichiers limités à 200 MB chacun. Cette configuration n’est actuellement pas prise en charge dans Streamlit in Snowflake. Pour les fichiers plus volumineux, envisagez de traiter les données en lots plus petits ou d’utiliser d’autres méthodes de chargement.
Changements dans l’utilisation des paramètres de requête dans Streamlit in Snowflake¶
Pour st.query_params dans Streamlit in Snowflake, un préfixe streamlit-
est ajouté à chaque clé de paramètre de requête dans l’URL. Ce préfixe n’est pas inclus lorsque vous utilisez st.query_params pour obtenir ou définir une valeur.
Prenons l’URL suivante :
https://app.snowflake.com/org/account_name/#/streamlit-apps/DB.SCHEMA.APP_NAME?streamlit-first_key=one&streamlit-second_key=two
Les paramètres de cette URL sont accessibles dans st.query_params sous la forme des paires clé-valeur suivantes :
{
"first_key" : "one",
"second_key" : "two"
}
Pour plus d’informations, voir st.query_params.