Erstellen einer Streamlit-App

Voraussetzungen

Bevor Sie eine Streamlit-App mit Snowflake CLI erstellen können, müssen die folgenden Voraussetzungen erfüllt sein:

Bootstrap für eine Streamlit-Anwendung

Der Befehl snow init erstellt ein lokales Verzeichnis mit einer Reihe von Beispieldateien, die Ihnen den Einstieg in das Erstellen einer Streamlit-App erleichtern. Wenn Sie diesen Befehl ausführen, erstellt Snowflake CLI die folgende Verzeichnisstruktur:

example_streamlit/            - project name (default: example_streamlit)
  snowflake.yml               - configuration for snow streamlit commands
  environment.yml             - additional config for Streamlit, for example installing packages
  streamlit_app.py            - entrypoint file of the app
  pages/                      - directory name for Streamlit pages (default pages)
  common/                     - example “shared library”

Um eine Streamlit-App zu initialisieren, geben Sie den folgenden Befehl ein:

snow init new_streamlit_project --template example_streamlit -D query_warehouse=dev_warehouse -D stage=testing
Copy

Vorsicht

Dateien in einem Projektverzeichnis werden von Snowflake CLI verarbeitet und können beim Ausführen anderer snow streamlit-Befehle in Snowflake hochgeladen werden. Seien Sie vorsichtig, wenn Sie sensible Informationen in Dateien in einem Projektverzeichnis ablegen.

Weitere Informationen zur Dateistruktur finden Sie unter Erstellen Sie die Streamlit-Dateien auf Ihrem lokalen System.

Projektdefinition für eine Streamlit-App erstellen

Jede Streamlit-App in Snowflake muss eine snowflake.yml-Projektdefinitionsdatei enthalten. Streamlit ist auf eine Anwendung pro Projektdefinitionsdatei beschränkt.

Im Folgenden wird eine Beispiel für eine snowflake.yml-Projektdefinitionsdatei gezeigt:

definition_version: 2
entities:
  my_streamlit:
    type: streamlit
    identifier: streamlit_app
    stage: my_streamlit_stage
    query_warehouse: my_streamlit_warehouse
    main_file: streamlit_app.py
    pages_dir: pages/
    external_access_integrations:
      - test_egress
    secrets:
      dummy_secret: "db.schema.dummy_secret"
    imports:
      - "@my_stage/foo.py"
    artifacts:
      - common/hello.py
      - environment.yml
Copy

Die folgende Tabelle beschreibt die Eigenschaften einer Streamlit-Projektdefinition.

Eigenschaften der Streamlit-Projektdefinition

Eigenschaft

Definition

Bezeichner

optional, string

Optionaler Snowflake-Bezeichner für die Entität. Der Wert kann die folgenden Formen annehmen:

  • Zeichenfolge Bezeichnertext

    identifer: my-streamlit-id
    
    Copy

    Es werden sowohl Bezeichner ohne Anführungszeichen als auch Bezeichner mit Anführungszeichen unterstützt. Um Bezeichner in Anführungszeichen zu verwenden, schließen Sie die umgebenden Anführungszeichen in den Wert YAML ein (z. B. '"My Streamlit Application"').

  • Objekt

    identifer:
      name: my-streamlit-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    Bemerkung

    Es tritt ein Fehler auf, wenn Sie ein schema oder eine database angeben und einen vollqualifizierten Namen in der name-Eigenschaft verwenden (z.B. mydb.schema1.my-app).

type

optional, string

Muss streamlit sein.

comment

optional, string

Kommentar für das Streamlit-Dashboard.

Titel

optional, string

Von Menschen lesbarer Titel für das Streamlit-Dashboard.

stage

optional, string

Stagingbereich, in dem die Artefakte der App gespeichert werden. Standard: Keine.

query_warehouse

erforderlich, string

Snowflake-Warehouse, das die App hostet.

main_file

optional, string

Einstiegspunkt-Datei der Streamlit-App. Standard: „streamlit_app.py“.

pages_dir

optional, string

Streamlit-Seiten. Standard: „pages“.

Artefakte

erforderlich, string sequence

Auflistung der Dateien, die in die Deployment-Artefakte aufgenommen werden sollen.