Diretrizes para publicar um aplicativo no Snowflake Marketplace¶
Este tópico descreve os critérios para publicar um Snowflake Native App no Snowflake Marketplace.
Publicação de um aplicativo no Snowflake Marketplace¶
Quando seu pacote de aplicativo estiver pronto para ser publicado no Snowflake Marketplace, você deverá enviá-lo ao Snowflake para aprovação.
Nota
O processo de aprovação necessário para publicar um aplicativo no Snowflake Marketplace é um acréscimo à verificação de segurança automatizada que é executada quando a propriedade DISTRIBUTION de um pacote de aplicativo é definida como EXTERNAL.
Antes de criar uma listagem, verifique se você entende os requisitos aplicados e certifique-se de que seu pacote de aplicativos siga cada requisito. Se um pacote de aplicativo não atender a esses requisitos, seu envio poderá ser rejeitado.
Se você receber uma notificação de rejeição para o pacote de aplicativo enviado, faça as alterações recomendadas e reenvie seu pacote de aplicativo para aprovação.
Padrões para o Snowflake Native Apps no Snowflake Marketplace¶
A Snowflake fornece uma plataforma que permite aos provedores criar, distribuir e monetizar aplicativos.
O processo de revisão do Snowflake garante a qualidade dos aplicativos publicados no Snowflake Marketplace. Para garantir um processo de revisão simplificado, a Snowflake fornece os seguintes requisitos e diretrizes para aplicativos publicados no Snowflake Marketplace.
- Utilidade imediata
Os aplicativos devem fornecer aos consumidores utilidade imediata e ser usados no Snowflake sem requisitos externos.
- Autonomia
Os aplicativos devem ser autônomos. Os consumidores devem poder usar o aplicativo e a funcionalidade do aplicativo em sua conta.
- Acesso responsável aos dados
Os aplicativos que acessam os dados do Snowflake devem usar os dados adequadamente.
- Monetizado na plataforma
A Snowflake recomenda que os aplicativos monetizados usem os recursos de monetização fornecidos pela Snowflake. Quando um aplicativo usa a monetização na plataforma do Snowflake, os usuários do Snowflake podem usar seus compromissos de capacidade para comprar soluções de terceiros.
- Transparência
Os aplicativos devem usar os recursos do Snowflake para maximizar a visibilidade do recurso e do acesso do aplicativo. Os aplicativos devem simplificar o processo de configuração ao consumidor.
Requisitos aplicados¶
A Snowflake usa os seguintes padrões para determinar se um Native App atende aos requisitos para publicação no Snowflake Marketplace. Esses requisitos são verificados quando você envia uma listagem com um pacote de aplicativo anexado ao Snowflake Marketplace.
Utilidade imediata
Os aplicativos não devem ser aplicativos shell que anunciam funcionalidade.
Os aplicativos devem incluir uma estrutura clara para utilizar a funcionalidade do aplicativo.
Autonomia
Os aplicativos não devem redirecionar os consumidores para um serviço externo para habilitar a funcionalidade do aplicativo.
As interfaces do aplicativo devem ser acessíveis após a instalação diretamente do Snowflake com uma UI do Streamlit ou uma UI personalizada hospedada no Snowflake.
Os aplicativos não podem exigir que os consumidores criem usuários ou funções que forneçam acesso a um serviço externo na conta do consumidor Snowflake.
Os aplicativos não podem usar o Snowflake Marketplace como uma plataforma de distribuição para vendas cruzadas de aplicativos ou serviços externos.
Acesso responsável aos dados
Os aplicativos devem aproveitar os dados de uma das seguintes maneiras:
Compartilhe os dados da conta do provedor do aplicativo.
Use conjuntos de dados do Snowflake Marketplace.
Acesse os dados na conta do consumidor.
Monetizado na plataforma
Os aplicativos monetizados na plataforma devem incluir todas as funcionalidades do Snowflake.
Transparência
Todos os privilégios e referências de nível de conta que o aplicativo requer devem ser listados no arquivo de manifesto do pacote do aplicativo.
Todos os requisitos de recurso para o Native App Snowflake devem ser listados no arquivo marketplace.yml do aplicativo. O aplicativo deve criar esses recursos como parte da instalação e configuração.
Se uma listagem incluir um privilégio ou referência no nível da conta na seção
security
do arquivo de manifesto e o pacote do aplicativo contiver um aplicativo Streamlit, você deverá usar o Snowsight para criar uma interface de usuário para solicitar privilégios e referências do consumidor.Se um pacote de aplicativo não incluir um aplicativo Streamlit ou uma interface de usuário personalizada para o aplicativo, o arquivo leiame incluído no pacote do aplicativo deverá conter as seguintes informações:
Uma descrição do que o aplicativo faz.
As etapas que o consumidor deve realizar para configurar o aplicativo após sua instalação.
Os procedimentos armazenados e funções definidas pelo usuário que o aplicativo usa.
Os privilégios que o aplicativo exige.
Exemplo de comandos SQL que mostram aos consumidores como usar o aplicativo.
Se o arquivo leia-me incluir instruções SQL ou exemplos de código, você deverá usar blocos de código.
Use um aplicativo Streamlit de página única ou múltiplas páginas em vez de vários aplicativos Streamlit separados, sempre que possível. Isso inclui aplicativos Streamlit multiusuário.
Se o aplicativo fornecer dados de amostra, você deverá incluir procedimentos sobre como usar os dados de amostra, incluindo o código necessário para criar o banco de dados, se necessário.
Se um pacote de aplicativo não contiver um arquivo leiame, será necessário fornecer exemplos de uso na seção Sample SQL da listagem, configurar um aplicativo Streamlit padrão ou um ponto de extremidade da Web padrão.
Práticas recomendadas ao publicar um Snowflake Native App¶
Além dos requisitos para enviar um pacote de aplicativos para Snowflake Marketplace, a Snowflake também recomenda as seguintes práticas recomendadas ao publicar um Snowflake Native App:
Certifique-se de que todos os arquivos necessários sejam carregados no estágio nomeado para a versão do aplicativo que você está enviando, incluindo:
O arquivo
manifest.yml
.O script de configuração.
O arquivo
readme.md
.Quaisquer procedimentos armazenados externos ou funções definidas pelo usuário exigidas pelo pacote de aplicativos.
Quaisquer arquivos Streamlit exigidos pelo pacote de aplicativos.
Qualquer código-fonte externo, incluindo Python, Java etc.
Certifique-se de que a versão do aplicativo que você está desenvolvendo passe na verificação de segurança automatizada.
Teste a nova versão do seu pacote de aplicativos criando o objeto do aplicativo localmente usando o comando CREATE APPLICATION.
Não adicione uma nova versão ao pacote do aplicativo nem defina a propriedade DISTRIBUTION como EXTERNAL enquanto estiver desenvolvendo e testando um aplicativo. Essas ações acionam a verificação de segurança automatizada, o que atrasa o ciclo de desenvolvimento.
Em vez disso, crie o objeto do aplicativo usando arquivos em um estágio nomeado.
Se seu aplicativo incluir um aplicativo Streamlit, teste-o em Snowsight para garantir que ele funcione conforme o esperado.
Verifique se as interações entre o aplicativo Streamlit e as planilhas Snowflake são perfeitas e se o consumidor não precisa navegar excessivamente entre os dois.
Revise todas as partes de uma listagem antes de enviá-la para aprovação.
Certifique-se de que não haja erros de digitação ou outros erros textuais na listagem, no arquivo
readme
e no aplicativo Streamlit.
Recomendações para listagens de testes¶
Quando uma listagem de teste de aplicativo expira, a Snowflake suspende o aplicativo automaticamente para evitar que os consumidores incorram em custos extras de consumidor. O Snowflake suspende apenas os objetos de propriedade do aplicativo que estão ativos no momento. O Snowflake não modifica o status de objetos que já estão suspensos.
Quando uma listagem de teste é convertida em uma listagem completa ou paga, o Snowflake tenta reativar o aplicativo retomando tarefas, contêineres e pools de computação. O Snowflake só retoma serviços e pools de computação com a propriedade auto_resume
definida como falsa.
Recomendações para aplicativos com contêineres¶
Os pools de computação devem ser definidos para suspender automaticamente em combinação com os trabalhos do Snowpark Container Services e evitar nós de computação ociosos.
Para maior disponibilidade durante atualizações e para reduzir a latência de inicialização a frio, a Snowflake recomenda que você defina o parâmetro
MIN_NODES
como maior que 1.Se forem necessárias conexões entre diferentes serviços no mesmo aplicativo, use o nome DNS do serviço em vez de configurar uma integração de acesso externo.
Recomendações para compartilhamento de evento¶
Os provedores devem configurar um aplicativo para emitir mensagens de log e rastrear eventos que estejam em conformidade com as definições de evento compatíveis para garantir que os consumidores entendam quais informações são coletadas.
As definições de evento obrigatórias devem ser limitadas às mensagens de log e eventos de rastreamento exigidos pelo aplicativo. Definições de evento obrigatórias excessivas ou desnecessárias devem ser evitadas.
Adicionar novas definições de evento obrigatórias em uma atualização de versão deve exigir que o consumidor reative as definições de evento para o aplicativo.
Use o Python Permission SDK para permitir que os consumidores compartilhem eventos opcionais.