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

Alle Funktionen der App müssen im Konto des Verbrauchers bereitgestellt werden, wenn die App installiert wird. Wenn ein Verbraucher zum Beispiel eine App auf seinem Konto installiert, müssen alle Funktionen der App verfügbar sein, ohne dass der Verbraucher zusätzliche Komponenten installieren muss.

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 und einfach

Apps müssen Snowflake-Features verwenden, um die Ressourcen- und Zugriffsanforderungen der App offenzulegen und den Konfigurationsprozess für den Verbraucher zu vereinfachen.

Erzwungene Anforderungen

Snowflake verwendet die folgenden Richtlinien, um festzustellen, ob eine Snowflake Native App die Anforderungen für eine 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.

  1. Unmittelbarer Nutzen

    1. Apps dürfen keine Shell-Apps sein, die Funktionen anpreisen.

    2. Apps müssen einen klaren Rahmen und klare Anweisungen für die Nutzung der App-Funktionalität enthalten.

    3. Apps sollten nicht abstürzen, einfrieren oder anderweitig nicht richtig funktionieren.

    4. Apps müssen alle erforderlichen Anmeldeinformationen auflisten und Anbieter müssen Snowflake bei der Einreichung zum Testen die erforderlichen Anmeldeinformationen mitteilen.

    5. Apps müssen sofort einsatzbereit sein und es den Verbrauchern ermöglichen, die App vollständig zu installieren und zu konfigurieren, ohne den Anbieter kontaktieren zu müssen.

  2. Eigenständig

    1. Apps dürfen Verbraucher nicht auf einen externen Dienst umleiten, um die Funktionalität der Anwendung zu aktivieren.

    2. Die Weboberflächen der App müssen nach der Installation direkt von Snowflake aus zugänglich sein.

    3. Apps können von Verbrauchern fordern, dass sie im Konto des Snowflake-Verbrauchers Benutzer oder Rollen anlegen, die Zugriff auf einen externen Dienst bieten.

    4. Apps können den Snowflake Marketplace nicht als Vertriebsplattform für den Verkauf von externen Anwendungen oder Diensten nutzen.

  3. Datenzentriert

    1. Apps müssen Snowflake-Daten auf eine der folgenden Arten nutzen:

      1. Geben Sie Daten vom Konto des App-Anbieters frei.

      2. Verwenden Sie Datensätze aus dem Snowflake Marketplace.

      3. Zugriff auf Daten des Verbraucherkontos.

  4. Transparent

    1. Alle Berechtigungen und Verweise auf Kontoebene, die die Anwendung benötigt, müssen in der Manifestdatei des Referenzen aufgelistet sein.

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

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

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

      1. Eine Beschreibung, was die App macht.

      2. Die Schritte, die der Verbraucher ausführen muss, um die Anwendung nach der Installation zu konfigurieren.

      3. Die gespeicherten Prozeduren und benutzerdefinierten Funktionen, die die Anwendung verwendet.

      4. Die Berechtigungen, die die App benötigt.

      5. SQL-Beispielbefehle, die den Verbrauchern zeigen, wie sie die App verwenden können.

    5. Alle erforderlichen SQL-Befehle müssen mit Snowflake geliefert und als Codeblöcke formatiert werden.

    6. Wenn die App Beispieldaten bereitstellt, müssen Sie Verfahren zur Verwendung der Beispieldaten angeben.

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.