Hinzufügen einer Streamlit-App zu einem Anwendungspaket¶
Unter diesem Thema wird beschrieben, wie Sie eine Streamlit-App zu einem Anwendungspaket hinzufügen.
Allgemeine Informationen zur Verwendung von Streamlit in einer Anwendung¶
Streamlit ist ein Open-Source-Python-Framework für die Entwicklung von Anwendungen für Data Science und maschinelles Lernen. Das Snowflake Native App Framework ermöglicht das Einbinden von Streamlit-Apps in eine Snowflake Native App, um Benutzerinteraktion und Datenvisualisierung bereitzustellen.
Bemerkung
Weitere Informationen zu den unterstützten Streamlit-Features finden Sie unter Nicht unterstützte Streamlit-Features und Einschränkungen bei der Verwendung von Streamlit im Native App Framework.
Beispiel einer Verzeichnisstruktur für eine Streamlit-App¶
Wie bei anderen Python-Modulen müssen Sie, um eine Streamlit-App zu einem Anwendungspaket hinzuzufügen, Ihre Streamlit-Codedateien in einen benannten Stagingbereich hochladen. Weitere Informationen zum Hochladen von Dateien in einen Stagingbereich finden Sie unter PUT.
Um mehrere Versionen einer Snowflake Native App zu integrieren, müssen Sie Ihre Streamlit-Apps und zugehörige Anwendungsdateien mithilfe einer Verzeichnisstruktur wie der folgenden verwalten:
@test.schema1.stage1:
└── /
├── manifest.yml
├── readme.md
├── scripts/setup_script.sql
└── code_artifacts/
└── streamlit/
└── environment.yml
└── streamlit_app.py
Beachten Sie, dass die verwendete Verzeichnisstruktur von Ihrer Umgebung abhängt.
Bemerkung
Die Datei environment.yml
muss sich auf derselben Ebene befinden wie die Hauptdatei Ihrer Streamlit-App.
Weitere Informationen zu relativen Pfadangaben finden Sie unter Referenzieren von externen Codedateien.
Hinzufügen einer Streamlit-App zur Manifest-Datei¶
Um eine Streamlit-Datei in ein Anwendungspaket einzubinden, fügen Sie der manifest.yml
-Datei folgende Einträge hinzu:
artifacts:
...
extension_code: true
...
Der Eintrag extension_code: true
ist erforderlich, um beliebigen Erweiterungscode in Ihrer App zu aktivieren.
configuration:
...
default_streamlit: app_schema.streamlit_app_na
...
Der Eintrag default_streamlit: app_schema.streamlit_app_na
gibt den Speicherort des Schemas an, das Ihre Streamlit-App enthält.
Hinzufügen einer Streamlit-App zum Setup-Skript¶
Das folgende Beispiel zeigt, wie CREATE STREAMLIT innerhalb des Setup-Skripts verwendet wird.
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;
In diesem Beispiel wird ein Streamlit-Objekt innerhalb eines Schemas namens app_schema
erstellt. Der Befehl CREATE STREAMLIT verwendet die in der MAIN_FILE-Klausel angegebene Streamlit-Anwendung in dem Verzeichnis, das in der FROM-Klausel angegeben ist.
Nicht unterstützte Streamlit-Features¶
Die folgenden Streamlit-Features werden derzeit nicht unterstützt:
-
Die Eigenschaften
page_title
undpage_icon
des Befehls st.set_page_config werden nicht unterstützt. Kundenspezifische Komponenten, einschließlich:
Medienelemente, einschließlich:
Experimentelle Features, einschließlich:
Unsicheres HTML mit
unsafe_allow_html=True
wird in st.markdown nicht unterstützt.Netzwerkzugriff über das Internet
Anker-Links
Einschränkungen bei der Verwendung von Streamlit im Native App Framework¶
In diesem Abschnitt werden die Einschränkungen bei der Verwendung von Streamlit im Snowflake Native App Framework beschrieben.
Keine Unterstützung von kundenspezifischen Komponenten¶
Kundenspezifische Komponenten werden nicht unterstützt.
Keine Unterstützung der integrierten Versionskontrolle oder von CI/CD-Systemen¶
Streamlit-Apps werden nicht in Versionskontrollsysteme integriert. Der App-Verlauf oder Code-Änderungen sind permanent und können nicht rückgängig gemacht werden.
Es gibt keine Integration in GitHub, GitLab oder anderen Versionskontrollanbietern.
App-Bearbeitungen sind für App-Betrachter sichtbar¶
Wenn ein Entwickler die App während der Bearbeitung ausführt, sind die Änderungen sofort für die Betrachter der App sichtbar.
Keine Unterstützung von AWS PrivateLink¶
Die Verwendung von AWS PrivateLink für den Zugriff auf die Streamlit-App wird nicht unterstützt.
Keine Unterstützung für die Bibliotheken Seaborn und Matlibplot¶
Die Bibliotheken Seaborn und Matlibplot werden nicht unterstützt. Beide weisen Abhängigkeiten von der Funktion st.image() auf, die derzeit nicht unterstützt wird.
Problembehandlung bei Streamlit-Apps¶
Wenn die App einen unbekannten Fehler anzeigt, müssen Sie sicherstellen, dass Sie die in den folgenden Abschnitten beschriebenen Lösungen getestet haben.
Anerkennen der Nutzungsbedingungen¶
Bevor Sie Streamlit und die von Anaconda bereitgestellten Pakete in Snowflake verwenden können, müssen Sie die Snowflake-Bedingungen für Drittanbieter anerkennen. Weitere Informationen dazu finden Sie unter Verwenden von Drittanbieterpaketen aus Anaconda.
Firewall-Zulassungsliste¶
Jede Streamlit-Anwendung verwendet eine eigene Subdomäne. Wenn Sie strenge Firewalls verwenden, fügen Sie *.snowflake.app zu Ihrer Firewall-Zulassungsliste hinzu. Wenn Sie diesen Eintrag zu Ihrer Zulassungsliste hinzufügen, können Ihre Anwendungen ohne Einschränkungen mit Snowflake-Servern kommunizieren.