Richtlinien für die Veröffentlichung einer App auf Snowflake Marketplace¶
In diesem Thema werden die Kriterien für die Veröffentlichung einer Snowflake Native App für Snowflake Marketplace beschrieben.
Veröffentlichen Sie eine App auf Snowflake Marketplace¶
Wenn Ihr Anwendungspaket zur Veröffentlichung auf Snowflake Marketplace bereit ist, müssen Sie es zur Genehmigung bei Snowflake einreichen.
Bemerkung
Der Genehmigungsprozess, der für die Veröffentlichung einer App auf Snowflake Marketplace erforderlich ist, erfolgt zusätzlich zu dem automatisierten Sicherheitsscan, der durchgeführt wird, wenn die DISTRIBUTION-Eigenschaft eines Anwendungspakets auf EXTERNAL eingestellt ist.
Vergewissern Sie sich vor dem Erstellen eines Freigabeangebots, dass Sie die erzwungenen Anforderungen verstanden haben, und stellen Sie sicher, dass Ihr Anwendungspaket jede Anforderung erfüllt. Wenn ein Paket nicht diesen Anforderungen entspricht, kann Ihr Antrag abgelehnt werden.
Wenn Sie eine Ablehnungsbenachichtigung für Ihr eingereichtes Anwendungspaket erhalten, nehmen Sie die empfohlenen Änderungen vor und reichen Sie Ihr Anwendungspaket erneut zur Genehmigung ein.
Standards für Snowflake Native Apps auf dem Snowflake Marketplace¶
Snowflake bietet eine Plattform, die es Anbietern ermöglicht, Apps zu erstellen, zu vertreiben und zu monetarisieren.
Der Snowflake-Prüfungsprozess stellt die Qualität der Apps sicher, die auf dem Snowflake Marketplace veröffentlicht werden. Um einen reibungslosen Prüfungsprozess zu gewährleisten, stellt Snowflake die folgenden Anforderungen und Richtlinien für Apps bereit, die auf dem Snowflake Marketplace veröffentlicht werden.
- Unmittelbarer Nutzen
Die Apps müssen den Verbrauchern einen unmittelbaren Nutzen bieten und innerhalb von Snowflake ohne externe Anforderungen genutzt werden können.
- Eigenständig
Apps müssen eigenständig sein. Die Verbraucher müssen in der Lage sein, die App und die Funktionen der App innerhalb ihres Kontos zu nutzen.
- Verantwortungsvoller Datenzugriff
Apps, die auf Snowflake-Daten zugreifen, müssen diese Daten angemessen nutzen.
- Monetarisierung auf der Plattform
Snowflake empfiehlt, dass monetarisierte Apps die Monetarisierungs-Features verwenden, die Snowflake anbietet. Wenn eine App Snowflake zur Monetarisierung auf der Plattform verwendet, können Snowflake-Benutzer ihre Kapazitätszusagen nutzen, um Lösungen von Drittanbietern zu kaufen.
- Transparent
Apps müssen Snowflake-Features verwenden, um die Sichtbarkeit von Ressourcen und Zugriffen zu maximieren. Apps sollten die Konfiguration für den Verbraucher vereinfachen.
Erzwungene Anforderungen¶
Snowflake verwendet die folgenden Standards, um festzustellen, ob eine Native App die Anforderungen für die Veröffentlichung auf dem Snowflake Marketplace erfüllt. Diese Anforderungen werden überprüft, wenn Sie ein Freigabeangebot mit einem beigefügten Paket an den Snowflake Marketplace senden.
Unmittelbarer Nutzen
Apps dürfen keine Shell-Apps sein, die Funktionen anpreisen.
Apps müssen einen klaren Rahmen für die Nutzung der App-Funktionen enthalten.
Eigenständig
Apps dürfen Verbraucher nicht auf einen externen Dienst umleiten, um die Funktionalität der Anwendung zu aktivieren.
Die AppWeboberflächen der App müssen nach der Installation direkt von Snowflake aus mit einem Streamlit UI oder einer in Snowflake gehosteten benutzerdefinierten UI zugänglich sein.
Apps können von Verbrauchern fordern, dass sie im Konto des Snowflake-Verbrauchers Benutzer oder Rollen anlegen, die Zugriff auf einen externen Dienst bieten.
Apps können den Snowflake Marketplace nicht als Vertriebsplattform für den Verkauf von externen Anwendungen oder Diensten nutzen.
Verantwortungsvoller Datenzugriff
Apps müssen die Daten auf eine der folgenden Arten nutzen:
Geben Sie Daten vom Konto des App-Anbieters frei.
Verwenden Sie Datensätze aus dem Snowflake Marketplace.
Zugriff auf Daten des Verbraucherkontos.
Monetarisierung auf der Plattform
Apps, die auf der Plattform monetarisiert werden, müssen alle Funktionen von Snowflake enthalten.
Transparent
Alle Berechtigungen und Verweise auf Kontoebene, die die Anwendung benötigt, müssen in der Manifestdatei des Referenzen aufgelistet sein.
Alle Anforderungen an die Ressourcen für die Snowflake Native App müssen in der Datei marketplace.yml der App aufgelistet sein. Die App muss diese Ressourcen im Rahmen der Installation und des Setup erstellen.
Wenn ein Freigabeangebot im Abschnitt
security
der Manifest-Datei eine Berechtigung oder eine Referenz auf Kontoebene enthält und das Anwendungspaket eine Streamlit-App enthält, müssen Sie mit dem Snowsight eine Benutzeroberfläche erstellen, um Berechtigungen und Referenzen vom Verbraucher anzufordern.Wenn ein Anwendungspaket keine Streamlit-App oder benutzerdefinierte Weboberfläche für die App enthält, muss die im Anwendungspaket enthaltene Readme-Datei die folgenden Informationen enthalten:
Eine Beschreibung, was die App macht.
Die Schritte, die der Verbraucher ausführen muss, um die Anwendung nach der Installation zu konfigurieren.
Die gespeicherten Prozeduren und benutzerdefinierten Funktionen, die die Anwendung verwendet.
Die Berechtigungen, die die App benötigt.
SQL-Beispielbefehle, die den Verbrauchern zeigen, wie sie die App verwenden können.
Wenn die Readme-Datei SQL-Anweisungen oder Codebeispiele enthält, müssen Sie Codeblocks verwenden.
Verwenden Sie nach Möglichkeit eine einzige oder mehrseitige Streamlit-App anstelle mehrerer separater Streamlit-Apps. Dazu gehören Mehrbenutzer-Streamlit-Apps.
Wenn die App Beispieldaten bereitstellt, müssen Sie Verfahren zur Verwendung der Beispieldaten bereitstellen, einschließlich des erforderlichen Codes zum Erstellen der Datenbank, falls erforderlich.
Wenn ein Anwendungspaket keine Readme-Datei enthält, müssen Sie im Sample SQL-Abschnitt des Freigabeangebots Verwendungsbeispiele angeben, eine Standard-Streamlit-App oder einen Standard-Web-Endpunkt konfigurieren.
Best Practices für das Veröffentlichen einer Snowflake Native App¶
Zusätzlich zu den Anforderungen für das Einreichen eines Anwendungspakets für Snowflake Marketplace empfiehlt Snowflake die folgenden Best Practices für das Veröffentlichen einer Snowflake Native App:
Stellen Sie sicher, dass alle erforderlichen Dateien für die Version der App, die Sie einreichen möchten, in den benannte Stagingbereich hochgeladen wurden, einschließlich:
Datei
manifest.yml
Setup-Skript
Datei
readme.md
Alle externen gespeicherten Prozeduren oder benutzerdefinierten Funktionen, die für das Anwendungspaket erforderlich sind
Alle Streamlit-Dateien, die für das Anwendungspaket erforderlich sind
Der gesamte externe Quellcode, einschließlich Python, Java usw.
Stellen Sie sicher, dass die Version der von Ihnen entwickelten App den automatisierten Sicherheitsscan besteht.
Testen Sie die neue Version Ihres Anwendungspakets, indem Sie das Anwendungsobjekt lokal mit dem Befehl CREATE APPLICATION erstellen.
Fügen Sie während Entwicklung und Test einer App keine neue Version zu Ihrem Anwendungspaket hinzu und setzen Sie die Eigenschaft DISTRIBUTION nicht auf EXTERNAL. Diese Aktionen lösen den automatische Sicherheitsscan aus, wodurch sich der Entwicklungszyklus verzögert.
Erstellen Sie stattdessen das Anwendungsobjekt mit Dateien in einem benannten Stagingbereich.
Wenn Ihre Anwendung eine Streamlit-App enthält, testen Sie die Anwendung in Snowsight, um sicherzustellen, dass die Streamlit-App wie erwartet funktioniert.
Überprüfen Sie, ob die Interaktionen zwischen der Streamlit-App und Snowflake-Arbeitsblättern nahtlos sind und der Verbraucher nicht übermäßig zwischen den beiden Anwendungen navigieren muss.
Überprüfen Sie alle Teile des Freigabeangebots, bevor Sie es zur Genehmigung einreichen.
Stellen Sie sicher, dass das Freigabeangebot, die
readme
-Datei und die Streamlit-App keine Rechtschreibfehler oder andere Textfehler enthalten.
Empfehlungen für Testversionen von Freigabeangeboten¶
Wenn das Freigabeangebot einer App ausläuft, setzt Snowflake die App automatisch aus, um zu vermeiden, dass den Verbrauchern zusätzliche Kosten für die Berechnung entstehen. Snowflake setzt nur die Objekte aus, die der App gehören und gerade aktiv sind. Snowflake ändert den Status von Objekten, die bereits ausgesetzt sind, nicht.
Wenn ein Freigabeangebot zu Testzwecken in ein vollständiges oder kostenpflichtiges Freigabeangebot konvertiert wird, versucht Snowflake, die App wieder zu aktivieren, indem Aufgaben, Container und Computepools wieder aufgenommen werden. Snowflake nimmt nur Dienste und Compute Pools wieder auf, bei denen die Eigenschaft auto_resume
auf „false“ eingestellt ist.
Empfehlungen für Apps mit Containern¶
Computepools sollten so eingestellt werden, dass sie in Kombination mit Snowpark Container Services-Jobs automatisch in den Ruhezustand versetzt werden, um ungenutzte Serverknoten zu vermeiden.
Für eine höhere Verfügbarkeit bei Upgrades und zur Verringerung der Kaltstartlatenz empfiehlt Snowflake, den
MIN_NODES
-Parameter größer als 1 einzustellen.Wenn in derselben App Verbindungen über verschiedene Dienste hinweg erforderlich sind, verwenden Sie den DNS-Namen des Dienstes, anstatt eine Integration für den externen Zugriff zu konfigurieren.
Empfehlungen für die Ereignisfreigabe¶
Anbieter sollten eine App so konfigurieren, dass sie Protokollmeldungen und Ablaufverfolgungen ausgibt, die den von unterstützten Definitionen von Ereignissen entsprechen, um sicherzustellen, dass die Verbraucher verstehen, welche Informationen gesammelt werden.
Obligatorische Ereignisdefinitionen sollten auf die von der App geforderten Protokollmeldungen und Ablaufverfolgungen beschränkt sein. Übertriebene oder unnötige obligatorische Ereignisdefinitionen sollten vermieden werden.
Wenn Sie bei einem Versions-Upgrade neue obligatorische Ereignisdefinitionen hinzufügen, muss der Verbraucher die Ereignisdefinitionen für die App erneut aktivieren.
Nutzen Sie die Python Permission SDK, um Verbrauchern die Möglichkeit zu geben, optionale Ereignisse zu teilen.