Bearbeiten einer bereitgestellten Streamlit-App

Nach der Bereitstellung einer Streamlit-App in Snowsight können Sie sowohl den Code der App als auch die Abhängigkeiten mit Snowsight- oder SQL-Befehlen bearbeiten. Die Art und Weise, wie Ihre Änderungen wirksam werden, hängt von der Laufzeitumgebung ab und davon, wie die App erstellt wurde.

Bemerkung

Apps, die mit dem ROOT_LOCATION-Parameter erstellt wurden (ältere Apps), haben nur begrenzte Möglichkeiten zur Bearbeitung und sollten so konvertiert werden, dass sie den FROM-Parameter verwenden, um die volle Funktionalität zu gewährleisten. Weitere Informationen dazu finden Sie unter Erläuterungen zu den verschiedenen Typen von Streamlit-Objekten.

Diese Seite behandelt nur Apps, die mit dem FROM-Parameter erstellt wurden.

Sowohl die Container- als auch Laufzeitumgebung unterliegen möglichen Race-Bedingungen, wenn mehrere Personen gleichzeitig dieselbe App bearbeiten. Weitere Details und bewährte Verfahren finden Sie im Abschnitt Hinweise zur gemeinsamen Bearbeitung weiter unten.

Bearbeitungsmethoden

Sie können Ihre App über einen In-Browser-Editor in Snowsight oder durch Hochladen von Dateien mithilfe von SQL-Befehlen bearbeiten.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » Streamlit und dann Ihre Ihre Streamlit-App aus.

  3. Wählen Sie in der rechten oberen Ecke die Option Edit aus.

  4. Wählen Sie im Datei-Explorer eine Datei aus, oder erstellen Sie eine neue Datei, die Sie bearbeiten möchten:

    • Um eine vorhandene Datei zu bearbeiten, wählen Sie diese im Datei-Explorer aus.

    • Um eine neue -Datei zu erstellen, wählen Sie + (Hinzufügen) » Create new file aus, geben Sie den Dateinamen ein, und wählen Sie dann Create aus. Sie können Unterverzeichnisse in den Dateinamen aufnehmen, z. B. subdir/new_file.py.

    • Um eine Datei von Ihrem lokalen Computer hochzuladen, wählen Sie + (Hinzufügen) » Upload file aus, wählen Sie die hochzuladende Datei aus, ändern Sie den Dateinamen und den Pfad, falls erforderlich, und wählen Sie dann Upload aus.

  5. Nehmen Sie Ihre Änderungen im Editorbereich vor.

    Änderungen werden nach ein paar Sekunden automatisch am Quellspeicherort der App gespeichert.

  6. Optional: Wählen Sie Run aus.

    Wenn Sie nicht ein paar Sekunden warten möchten, bis die Änderungen gespeichert werden, können Sie Run auswählen, um die Änderungen sofort zu kopieren.

  7. Wenn Ihre App eine Warehouse-Laufzeit verwendet, müssen die Betrachtenden Run auswählen, um die Änderungen in ihre App-Instanz zu kopieren. Wenn Ihre App eine Container-Laufzeit verwendet, werden Änderungen direkt in der Quelle der Live-App gespeichert und sind bei der nächsten Interaktion mit der App für alle Betrachtenden sichtbar.

Unterschiede im Laufzeitverhalten

Die Art und Weise, wie Ihre Änderungen wirksam werden, hängt vom Laufzeittyp Ihrer App ab.

Container-Laufzeit

Bei der Bearbeitung einer Container-Laufzeit-App:

  • Änderungen an der Quelle Ihrer App werden direkt in die Live-App übernommen.

  • Aktuelle Betrachtende sehen Aktualisierungen, wenn sie das nächste Mal mit der App interagieren und eine Wiederholung auslösen. (Die Streamlit Konfigurationsoption server.runOnSave ist standardmäßig deaktiviert.)

  • Die Run-Schaltfläche ist für Betrachtende verfügbar, aber nicht erforderlich, um Änderungen an eine aktuelle Ansichts- oder Bearbeitungssitzung weiterzugeben.

  • Alle Benutzenden sehen dieselbe App-Instanz mit sofortigen Änderungen.

Auch wenn die Live-App von den Betrachtenden gemeinsam genutzt wird, ist dies bei der Ansicht des Quellcodes in Snowsight-Editoren nicht der Fall. Daher unterliegen Apps in Container-Laufzeiten immer noch Race-Bedingungen, wenn mehrere Personen die App gleichzeitig bearbeiten. Weitere Details und bewährte Verfahren finden Sie im Abschnitt Hinweise zur gemeinsamen Bearbeitung weiter unten.

Warehouse-Laufzeit

Bei der Bearbeitung einer Warehouse-Laufzeit-App:

  • Der Quellcode der App wird kopiert, wenn die Instanz des jeweiligen Betrachtenden gestartet wird.

  • Aktuelle Betrachtende müssen Run auswählen, um Aktualisierungen zu kopieren, die während ihrer Sitzung an der Quelle vorgenommen wurden.

  • Auch die Person, die Änderungen vornimmt, muss auf Run klicken, um die Änderungen im Vorschaubereich zu sehen.

  • Jeder Betrachtende erhält seine eigene isolierte App-Instanz.

Hinweise zur gemeinsamen Bearbeitung

Wenn mehrere Personen dieselbe App bearbeiten, sollten Sie sich möglicher Konflikte bewusst sein. Sowohl Container- als auch Warehouse-Laufzeit-Apps unterliegen der folgenden Race-Bedingung, wenn mehr als eine Person die App gleichzeitig bearbeitet.

Race-Bedingungen

Der Snowsight-Editor funktioniert wie folgt:

  • Der aktuelle Quellcode wird in den Editorbereich kopiert, wenn Sie ihn öffnen oder den Dateinavigator verwenden, um eine Datei zu öffnen.

  • Wenn Sie eine Datei im Editorbereich anzeigen, wird sie nicht automatisch aktualisiert, wenn Änderungen von anderen vorgenommen werden.

  • Wenn Sie Änderungen in Ihrem Editorbereich vornehmen, überschreibt das automatische Speichern alle Änderungen, die von anderen vorgenommen werden, nachdem Sie den Editor geöffnet haben.

  • Es gibt keine automatische Zusammenführung widersprüchlicher Änderungen.

Beispielsweise kann die folgende Sequenz dazu führen, dass Änderungen verlorenen gehen:

  1. Entwickler A öffnet den Editor um 14:00 Uhr (2:00 PM).

  2. Entwickler B nimmt die Änderungen um 14:15 Uhr (2:15 PM) vor und speichert sie.

  3. Entwickler A speichert die Änderungen nach 14:30 Uhr (2:30 PM).

  4. Die Änderungen von Entwickler B gehen verloren (sie werden von Entwickler A überschrieben).

Best Practices für die Bearbeitung im Team

So vermeiden Sie Konflikte bei der Arbeit im Team:

  • Kommunizieren Sie mit Ihren Teammitgliedern, bevor Sie Änderungen vornehmen.

  • Bewahren Sie Ihre Quelldateien in einem Git-Repository auf, und stellen Sie Ihren Code von dort aus bereit.

  • Verwenden Sie separate Entwicklungs-Apps zum Testen von Änderungen.

  • Laden Sie den Snowsight-Editor neu, um die neueste Version zu erhalten, unmittelbar bevor Sie Änderungen vornehmen.