Lignes directrices pour la publication d’une application dans Snowflake Marketplace¶
Cette rubrique décrit les critères de publication d’une Snowflake Native App dans la Snowflake Marketplace.
Publier une application dans la Snowflake Marketplace¶
Lorsque votre paquet d’application est prêt à être publié sur Snowflake Marketplace, vous devez le soumettre à Snowflake pour approbation.
Note
Le processus d’approbation requis pour publier une application sur Snowflake Marketplace s’ajoute à l’analyse de sécurité automatisée qui est exécutée lorsque la propriété DISTRIBUTION d’un paquet d’application est définie sur EXTERNAL.
Avant de créer une annonce, vérifiez que vous comprenez les exigences appliquées et assurez-vous que votre paquet d’application respecte chaque exigence. Si un paquet d’application ne respecte pas ces exigences, votre demande pourrait être rejetée.
Si vous recevez une notification de rejet pour votre paquet d’application, apportez les modifications recommandées et soumettez à nouveau votre paquet d’application pour approbation.
Normes pour les Snowflake Native Apps sur la Snowflake Marketplace¶
Snowflake fournit une plateforme qui permet aux fournisseurs de créer, distribuer et monétiser des applications.
Le processus d’examen de Snowflake garantit la qualité des applications publiées sur la Snowflake Marketplace. Pour garantir un processus de révision simplifié, Snowflake fournit les exigences et directives suivantes pour les applications publiées sur la Snowflake Marketplace.
- Utilité immédiate
Les applications doivent fournir aux consommateurs une utilité immédiate et être utilisées dans Snowflake sans exigences externes.
- Autonome
Les applications doivent être autonomes. Les consommateurs doivent pouvoir utiliser l’application et ses fonctionnalités au sein de leur compte.
- Accès responsable aux données
Les applications qui accèdent aux données Snowflake doivent utiliser les données de manière appropriée.
- Monétisées sur la plateforme
Snowflake recommande aux applications monétisées d’utiliser les fonctionnalités de monétisation que Snowflake fournit. Lorsqu’une application utilise la monétisation sur plateforme Snowflake, les utilisateurs de Snowflake peuvent utiliser leurs engagements de capacité pour acheter des solutions tierces.
- Transparentes
Les applications doivent utiliser les fonctionnalités de Snowflake pour maximiser la visibilité des ressources et de l’accès de l’application. Les applications doivent simplifier le processus de configuration pour le consommateur.
Exigences appliquées¶
Snowflake utilise les normes suivantes pour déterminer si une Native App répond aux exigences de publication de la Snowflake Marketplace. Ces exigences sont vérifiées lorsque vous soumettez une annonce avec un paquet d’application joint à la Marketplace de Snowflake.
Utilité immédiate
Les applications ne doivent pas être des applications shell qui font la publicité de fonctionnalités.
Les applications doivent inclure un framework clair pour l’utilisation des fonctionnalités de l’application.
Autonome
Les applications ne doivent pas rediriger les consommateurs vers un service externe pour activer les fonctionnalités de l’application.
Les interfaces d’application doivent être accessibles après l’installation directement depuis Snowflake avec une UI Streamlit ou une UI hébergée et personnalisée dans Snowflake.
Les applications ne peuvent pas exiger des consommateurs qu’ils créent des utilisateurs ou des rôles qui donnent accès à un service externe dans le compte du consommateur Snowflake.
Les applications ne peuvent pas utiliser Snowflake Marketplace comme plate-forme de distribution pour la vente croisée d’applications ou de services externes.
Accès responsable aux données
Les applications doivent exploiter les données de l’une des manières suivantes :
Partagez les données du compte du fournisseur d’applications.
Utilisez les ensembles de données de Snowflake Marketplace.
Accéder aux données du compte consommateur.
Monétisées sur la plateforme
Les applications qui sont monétisées sur la plateforme doivent inclure toute la fonctionnalité dans Snowflake.
Transparentes
Tous les privilèges et toutes les références au niveau du compte dont l’appli a besoin doivent être répertoriés dans le fichier manifeste du paquet d’application.
Toutes les exigences en matière de ressources pour l’application Snowflake Native App doivent être répertoriées dans le fichier marketplace.yml de l’application. L’application doit créer ces ressources dans le cadre de l’installation et de la configuration.
Si une annonce inclut un privilège ou une référence au niveau du compte dans la section
security
du fichier manifeste et que le paquet d’application contient une application Streamlit, vous devez utiliser le Snowsight pour créer une interface utilisateur permettant de demander des privilèges et des références au consommateur.Si un paquet d’application n’inclut pas d’application Streamlit ou d’interface utilisateur personnalisée pour l’application, le fichier lisez-moi inclus dans le paquet d’application doit contenir les informations suivantes :
Une description de ce que fait l’application.
Les étapes que le consommateur doit suivre pour configurer l’application après son installation.
Les procédures stockées et les fonctions définies par l’utilisateur que l’application utilise.
Les privilèges requis par l’application.
Exemple SQL de commandes qui montrent aux consommateurs comment utiliser l’application.
Si le fichier lisez-moi comprend des instructions SQL ou des exemples de code, vous devez utiliser des verrous de code.
Dans la mesure du possible, utilisez une application Streamlit d’une ou de plusieurs pages au lieu de plusieurs applications Streamlit distinctes. Cela inclut les applications multi-utilisateurs Streamlit.
Si l’application fournit des exemples de données, vous devez inclure des procédures sur la façon d’utiliser les exemples de données, y compris le code nécessaire pour créer la base de données, si nécessaire.
Si un paquet d’application ne contient pas de fichier lisez-moi, vous devez fournir des exemples d’utilisation dans la section Sample SQL de l’annonce, configurer une application Streamlit par défaut ou un point de terminaison Web par défaut.
Bonnes pratiques pour la publication d’une Snowflake Native App¶
Outre les exigences relatives à la soumission d’un paquet d’application à Snowflake Marketplace, Snowflake recommande également les meilleures pratiques suivantes lors de la publication d’une Snowflake Native App :
Assurez-vous que tous les fichiers requis sont chargés dans la zone de préparation nommée pour la version de l’application que vous soumettez, y compris :
Le fichier
manifest.yml
.Le script d’installation.
Le fichier
readme.md
.Toutes les procédures stockées externes ou les fonctions définies par l’utilisateur requises par le paquet d’application.
Tous les fichiers Streamlit requis par le paquet d’application.
Tout code source externe, y compris Python, Java, etc.
Assurez-vous que la version de l’application que vous développez passe l’analyse de sécurité automatisée.
Testez la nouvelle version de votre paquet d’application en créant l’objet d’application localement à l’aide de la commande CREATE APPLICATION.
N’ajoutez pas de nouvelle version à votre paquet d’application ou ne définissez pas la propriété DISTRIBUTION sur EXTERNAL pendant que vous développez et testez une application. Ces actions déclenchent l’analyse de sécurité automatisée, ce qui retarde le cycle de développement.
Au lieu de cela, créez l’objet d’application en utilisant les fichiers sur une zone de préparation nommée.
Si votre application comprend une application Streamlit, testez l’application dans Snowsight pour vous assurer que l’application Streamlit fonctionne comme prévu.
Vérifiez que les interactions entre l’application Streamlit et les feuilles de calcul Snowflake sont transparentes et que le consommateur n’a pas à faire des allers-retours entre les deux de façon excessive.
Examinez toutes les parties d’une annonce avant de la soumettre pour approbation.
Assurez-vous qu’il n’y a pas de fautes de frappe ou d’autres erreurs de texte dans l’annonce, le fichier
readme
et l’application Streamlit.
Recommandations pour les annonces d’essai¶
Lorsqu’une annonce d’essai d’application expire, Snowflake suspend automatiquement l’application pour éviter que les consommateurs encourent des frais de calcul supplémentaires. Snowflake suspend uniquement les objets appartenant à l’application qui sont actuellement actifs. Snowflake ne modifie pas le statut des objets déjà suspendus.
Lorsqu’une annonce d’essai est convertie en annonce complète ou payante, Snowflake tente de réactiver l’application en reprenant les tâches, les conteneurs et les pools de calcul. Snowflake ne reprend que les services et les pools de calcul qui ont la propriété auto_resume
définie sur false.
Recommandations pour les applications avec conteneurs¶
Les pools de calcul doivent être configurés pour être suspendus automatiquement en combinaison avec les tâches Snowpark Container Services afin d’éviter les nœuds de calcul inactifs.
Pour une meilleure disponibilité lors des mises à niveau et pour réduire la latence de démarrage à froid, Snowflake vous recommande de définir le paramètre
MIN_NODES
supérieur à 1.Si des connexions entre différents services sont requises dans la même application, utilisez le nom DNS du service au lieu de configurer une intégration d’accès externe.
Recommandations pour le partage d’événements¶
Les fournisseurs doivent configurer une application pour émettre des messages de journal et suivre les événements conformes aux définitions d’événements prises en charge pour garantir que les consommateurs comprennent quelles informations sont collectées.
Les définitions d’événements obligatoires doivent être limitées aux messages de journal et aux événements de trace requis par l’application. Les définitions d’événements obligatoires excessives ou inutiles doivent être évitées.
L’ajout de nouvelles définitions d’événements obligatoires dans une mise à niveau de version doit nécessiter que le consommateur réactive les définitions d’événements pour l’application.
Utilisez Python Permission SDK pour permettre aux consommateurs de partager des événements optionnels.