Ajouter une application Streamlit à un paquet d’application¶
Cette rubrique décrit comment ajouter une application Streamlit à un paquet d’applications.
À propos de l’utilisation de Streamlit dans une application¶
Streamlit est un framework Python open source pour le développement d’applications de science des données et de machine learning. Le Snowflake Native App Framework vous permet d’inclure des applications Streamlit dans une Snowflake Native App afin d’offrir une interaction avec l’utilisateur et une visualisation des données.
Note
Voir Fonctions Streamlit non prises en charge et Limites de l’utilisation de Streamlit dans le Native Apps Framework pour des informations sur les fonctions Streamlit non prises en charge.
Exemple de structure de répertoire pour une application Streamlit¶
Comme pour les autres modules Python, pour ajouter une application Streamlit à un paquet d’application, vous devez charger vos fichiers de code Streamlit dans une zone de préparation nommée. Consultez PUT pour obtenir des informations sur la manière de charger des fichiers dans une zone de préparation.
Pour prendre en charge plusieurs versions d’une Snowflake Native App, envisagez d’utiliser une structure de répertoire similaire à la suivante pour gérer vos applications Streamlit et des fichiers d’application associés :
@test.schema1.stage1:
└── /
├── manifest.yml
├── readme.md
├── scripts/setup_script.sql
└── code_artifacts/
└── streamlit/
└── environment.yml
└── streamlit_app.py
Notez que la structure du répertoire que vous utilisez dépend de votre environnement.
Note
Le fichier environment.yml
doit se trouver au même niveau que votre fichier principal de votre application Streamlit.
Reportez-vous à Référencement de fichiers de code externes pour plus d’informations sur les chemins relatifs.
Ajouter une application Streamlit au fichier Manifest¶
Pour inclure un fichier Streamlit dans un paquet d’application, ajoutez les entrées suivantes dans le fichier manifest.yml
.
artifacts:
...
extension_code: true
...
L’entrée extension_code: true
est nécessaire pour activer tout code d’extension dans votre application.
configuration:
...
default_streamlit: app_schema.streamlit_app_na
...
L’entrée default_streamlit: app_schema.streamlit_app_na
indique l’emplacement du schéma contenant votre application Streamlit.
Ajout d’une application Streamlit au script d’installation¶
L’exemple suivant montre comment utiliser CREATE STREAMLIT dans le script d’installation.
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;
Cet exemple crée un objet Streamlit dans un schéma nommé app_schema
. La commande CREATE STREAMLIT utilise l’application Streamlit spécifiée dans la clause MAIN_FILE dans le répertoire spécifié par la clause FROM.
Fonctions Streamlit non prises en charge¶
Les fonctions Streamlit suivantes ne sont pas prises en charge actuellement :
-
Les propriétés
page_title
etpage_icon
de la commande st.set_page_config ne sont pas prises en charge. Composants personnalisés, y compris :
Éléments média, notamment :
Fonctions expérimentales, notamment :
Le HTML non sécurisé utilisant
unsafe_allow_html=True
n’est pas pris en charge dans st.markdownAccès au réseau via Internet
Liens d’ancrage
Limites de l’utilisation de Streamlit dans le Native Apps Framework¶
Cette section décrit les limites de l’utilisation de Streamlit dans le Snowflake Native App Framework.
Les composants personnalisés ne sont pas pris en charge¶
Les composants personnalisés ne sont pas pris en charge.
Les systèmes de contrôle de version intégré ou CI/CD ne sont pas pris en charge¶
Les applications Streamlit ne sont pas intégrées aux systèmes de contrôle des versions. L’historique de l’application ou les modifications du code sont permanents et ne peuvent pas être annulés.
Il n’y a pas d’intégration avec GitHub, GitLab ou d’autres fournisseurs de contrôle de version.
Les modifications apportées à l’application sont visibles par les utilisateurs de l’application¶
Lorsqu’un développeur lance l’application en cours de modification, les modifications sont immédiatement visibles par les utilisateurs de l’application.
AWS PrivateLink n’est pas pris en charge.¶
L’utilisation de AWS PrivateLink pour accéder à l’application Streamlit n’est pas prise en charge.
Les bibliothèques Seaborn et Matlibplot ne sont pas prises en charge¶
Les bibliothèques Seaborn et Matlibplot ne sont pas prises en charge. Les deux ont des dépendances sur la fonction st.image() qui n’est actuellement pas prise en charge.
Dépannage de Streamlit¶
Si l’application affiche une erreur inconnue, assurez-vous d’avoir essayé les solutions décrites dans les sections suivantes.
Acceptation des conditions de service¶
Pour utiliser Streamlit et les paquets fournis par Anaconda dans Snowflake, vous devez accepter les Conditions de tiers de Snowflake. Pour en savoir plus, voir Utilisation de paquets tiers à partir d’Anaconda.
Liste d’autorisations du pare-feu¶
Chaque application Streamlit utilise un sous-domaine unique. Si vous utilisez des pare-feux stricts, ajoutez *.snowflake.app à la liste des autorisations de votre pare-feu. L’ajout de cette entrée à votre liste d’autorisations permet à vos applications de communiquer avec les serveurs de Snowflake sans aucune restriction.