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
Copy

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
  ...
Copy

Der Eintrag extension_code: true ist erforderlich, um beliebigen Erweiterungscode in Ihrer App zu aktivieren.

configuration:
  ...
  default_streamlit: app_schema.streamlit_app_na
  ...
Copy

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;
Copy

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:

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 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.