Richtlinien und Anforderungen für das Auflisten von Apps auf Snowflake Marketplace¶
Übersicht¶
Diese Richtlinien definieren die erzwungenen Standards für das Veröffentlichen von Anwendungen – sowohl Snowflake Native Apps als auch Verbundene Apps – auf Snowflake Marketplace.
Native Anwendungen¶
Veröffentlichen auf Snowflake Marketplace¶
Wenn Ihr Anwendungspaket zur Veröffentlichung auf Snowflake Marketplace bereit ist, müssen Sie es zur Überprüfung und 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. Weitere Informationen dazu finden Sie unter Genehmigungsworkflow für Snowflake Native App-Freigabeangebote.
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 Snowflake Marketplace¶
Der Prozess der funktionalen Überprüfung für Snowflake Native App stellt die Qualität der auf Snowflake Marketplace veröffentlichten Apps sicher. Um deutlich zu machen, was während dieses Prozesses bewertet wird, gelten die folgenden Standards für alle Snowflake Native Apps, die über Snowflake Marketplace verteilt sind.
Unmittelbarer Nutzen
Die App-Funktionalität muss innerhalb des Verbraucherkontos bereitgestellt werden und die App muss nach der Installation betriebsbereit sein.
Eigenständig
Apps müssen Produkterfahrungen auf Snowflake bereitstellen und externe Anforderungen durch Snowflake-Funktionalität ermöglichen.
Datenzentriert
Die Anwendungen sollten auf datenzentrierten Anwendungsfällen basieren, die die in Snowflake gespeicherten Daten nutzen.
Transparent, einfach und sicher
Apps müssen Snowflake-Features verwenden, um die Ressourcen- und Zugriffsanforderungen der App offenzulegen und den Konfigurationsprozess für den Verbraucher zu vereinfachen.
Erzwungene Standards¶
Snowflake verwendet die folgenden Anforderungen, um festzustellen, ob eine Snowflake Native App die Standards für die Veröffentlichung auf Snowflake Marketplace erfüllt. Diese Anforderungen werden überprüft, wenn Sie ein Freigabeangebot mit einem beigefügten Anwendungspaket an Snowflake Marketplace senden.
Unmittelbarer Nutzen
Apps dürfen keine Shell-Apps sein, die Funktionen anpreisen. Apps müssen die angegebene Funktionalität bereitstellen.
Apps müssen einen klaren Rahmen und klare Anweisungen für die Nutzung der App-Funktionalität enthalten.
Apps sollten nicht abstürzen, einfrieren oder anderweitig nicht richtig funktionieren.
Apps müssen alle erforderlichen Anmeldeinformationen auflisten und Anbieter müssen Snowflake bei der Einreichung zum Testen die erforderlichen Anmeldeinformationen mitteilen.
Wenn Apps nicht sofort einsatzbereit sind, müssen sie den erwarteten Workflow für den Verbraucher dokumentieren, damit dieser die App vollständig installieren und konfigurieren kann.
Eigenständig
Apps dürfen nicht durchleitend sein. Sie dürfen die Verbraucher zum Beispiel nicht an einen externen Dienst weiterleiten, um die Kernfunktion der App zu aktivieren.
Die Weboberflächen der App müssen nach der Installation direkt von Snowflake aus zugänglich sein.
Apps können den Snowflake Marketplace nicht als Vertriebsplattform für den Verkauf von externen Anwendungen oder Diensten nutzen.
Apps, die auf externe Dienste zugreifen und die Authentifizierung von Benutzenden nutzen, sollten die folgenden Standards einhalten:
Apps dürfen Verbrauchende nur auffordern, einen Dienstbenutzer in ihrem Snowflake-Konto zu erstellen, um den Zugriff auf einen externen Dienst zu ermöglichen.
Akzeptable Authentifizierungsmethoden sind Programmgesteuerte Zugriffstoken (PAT), OAuth oder Schlüsselpaar. Der Dienstbenutzer darf nur die Mindestberechtigungen erhalten, die für das Funktionieren der App erforderlich sind.
Apps, die eine Authentifizierung des Benutzenden erfordern, sollten vom Verbrauchenden niemals verlangen, Folgendes für die Authentifizierung zu tun:
Geben Sie den Snowflake-Benutzernamen und das Kennwort des Verbrauchenden ein.
Erstellen Sie einen privaten/öffentlichen Schlüssel, und geben Sie den privaten Schlüssel frei.
Datenzentriert
Apps müssen Snowflake-Daten auf eine der folgenden Arten nutzen:
Geben Sie Daten vom Konto des App-Anbieters frei.
Verwenden Sie Datensets aus dem Snowflake Marketplace.
Zugriff auf Daten des Verbraucherkontos.
Transparent und einfach
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.
Alle Berechtigungen und Verweise auf Kontoebene, die in der Manifestdatei des Anwendungspakets aufgeführt sind, müssen vom Verbraucher über Snowsight oder die Python Permission SDK angefragt werden.
Apps müssen eine Readme-Datei bereitstellen. Wenn eine App kein Streamlit oder keine benutzerdefinierte Benutzeroberfläche enthält, muss die 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.
Alle erforderlichen SQL-Befehle müssen mit Snowflake geliefert und als Codeblöcke formatiert werden.
Wenn die App Beispieldaten bereitstellt, müssen Sie Verfahren zur Verwendung der Beispieldaten angeben.
Wenn ein Anwendungspaket eine Streamlit-App, aber keine Readme-Datei enthält, müssen Sie eine standardmäßige Streamlit-App 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:
Manifest-Datei
Setup-Skript
Datei README
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 automatischen Sicherheitsscan aus. 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 Computepools wieder auf, bei denen die Eigenschaft
auto_resumeauf „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.
Verwenden Sie die Python-Berechtigungs-SDK, um Verbrauchenden die Möglichkeit zu geben, optionale Ereignisse zu teilen.
Verbundene Apps¶
Snowflake erlaubt SaaS-Anbietenden, ihre Verbundenen Apps auf Snowflake Marketplace aufzulisten. Verbundene Apps sind integrierte SaaS-Anwendungen, die eine sichere Verbindung zum Konto eines Snowflake-Kunden herstellen, um bestimmte Daten als Teil ihres Workflows zu lesen oder zu erfassen. Verbundene Apps ermöglichen es Verbrauchenden, mit ihren Snowflake-Daten direkt über eine externe UI zu interagieren.
Anforderungen für die Veröffentlichung einer verbundenen App auf Snowflake Marketplace¶
Partnernetzwerkstufe: Anbietende müssen Mitglied des Snowflake Partner Network (SPN) sein und die Benennung Select, Premier oder Elite vorweisen können.
CSID-Anforderung: Jede verbundene App muss einen Bezeichner für die Verbindungszeichenfolge (CSID, Connection String Identifier) verwenden, um die vollständige Telemetrie und die Nutzungsverfolgung zu ermöglichen. Anbietenden wird die Konsolidierung zu einer einzigen CSID pro Anwendung empfohlen. Mehrere CSIDs werden bei Bedarf aber auch unterstützt. Die CSID(s) müssen zunächst über SPN eingereicht werden und werden anschließend in Ihrem Freigabeangebot verlangt und während des Überprüfungsprozesses überprüft.
Sicherheitstransparenz: Anbietende müssen im Rahmen des Freigabeangebots eine kurze Sicherheits- und Datenhandhabungsbescheinigung ausfüllen.
Freigabeangebotstyp: Alle verbundenen App-Freigabeangebote müssen ein öffentliches, kostenpflichtiges Angebot nutzen und Angebote über Standard- oder private Angebote erfüllen.
Laufende Standards für verbundene Apps auf Snowflake Marketplace¶
Beitrag zum Ökosystem: Verbundene Apps sollten einen sinnvollen Beitrag zum Snowflake Data Cloud-Ökosystem darstellen und dabei helfen, die Zusammenarbeit, den Verbrauch oder die Übernahme von Daten voranzutreiben.
Aktive Partnerschaft: Anbietende müssen aktive Mitwirkende im Snowflake-Ökosystem sein. Um auf dem Marketplace gelistet zu bleiben, müssen Anbietende ihre Status innerhalb des Partnernetzwerks auf der Select-Stufe oder höher behalten, und ihre Anwendungen müssen weiterhin fürs Ökosystem förderlich sein. Snowflake kann ein Freigabeangebot entfernen, wenn der Anbietende nicht mehr zum Ökosystem beiträgt (nach Ermessen von Snowflake) oder die Standards für die Partnerberechtigung nicht mehr erfüllt.