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
Todas as funcionalidades do aplicativo devem ser fornecidas na conta do consumidor quando o aplicativo for instalado. Por exemplo, quando um consumidor instala um aplicativo em sua conta, todas as funcionalidades do aplicativo devem estar disponíveis sem exigir que o consumidor instale componentes adicionais.
- Autonomia
Os aplicativos devem oferecer a experiência do produto no Snowflake e facilitar os requisitos externos por meio da funcionalidade do Snowflake.
- Centrado em dados
Os aplicativos devem ser baseados em casos de uso centrados em dados que aproveitam os dados armazenados no Snowflake.
- Transparente e simples
Os aplicativos devem usar os recursos do Snowflake para divulgar os requisitos de recursos e acesso do aplicativo e simplificar o processo de configuração para o consumidor.
Requisitos aplicados¶
A Snowflake usa as seguintes diretrizes para determinar se o Snowflake 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 e instruções para a utilização da funcionalidade do aplicativo.
Os aplicativos não devem travar, congelar ou funcionar de forma anormal.
Os aplicativos devem listar todas as credenciais necessárias e os provedores devem compartilhar as credenciais necessárias com a Snowflake no momento do envio para teste.
Os aplicativos devem ser imediatamente acionáveis, permitindo que os consumidores instalem e configurem totalmente o aplicativo sem a necessidade de entrar em contato com o provedor.
Autonomia
Os aplicativos não devem redirecionar os consumidores para um serviço externo para habilitar a funcionalidade do aplicativo.
As interfaces de aplicativos devem estar acessíveis após a instalação diretamente do 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.
Centrado em dados
Os aplicativos devem aproveitar os dados do Snowflake 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.
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.
Todos os privilégios e referências em nível de conta listados no arquivo de manifesto do pacote de aplicativo devem ser solicitados ao consumidor por meio do Snowsight ou do Python Permission SDK.
Os aplicativos devem fornecer um arquivo readme. Os aplicativos que não incluem uma interface de usuário personalizada ou Streamlit devem incluir as seguintes informações no arquivo readme:
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.
Todos os comandos SQL necessários devem ser fornecidos usando o Snowflake e formatados como blocos de código.
Se o aplicativo fornecer dados de amostra, você deverá incluir procedimentos sobre como usar os dados de amostra.
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.