Adição de um aplicativo Streamlit a um pacote de aplicativo

Este tópico descreve como adicionar um aplicativo Streamlit a um pacote de aplicativo.

Sobre o uso do Streamlit em um aplicativo

Streamlit é o framework Python de código aberto para o desenvolvimento de aplicativos de ciência de dados e aprendizado de máquina. O Snowflake Native App Framework permite incluir aplicativos Streamlit em um Snowflake Native App para fornecer interação do usuário e visualização de dados.

Nota

Consulte Recursos Streamlit não suportados e Limitações ao usar Streamlit no Native App Framework para obter mais informações sobre recursos Streamlit não suportados.

Exemplo de estrutura de diretório de um aplicativo Streamlit

Como outros módulos Python, para adicionar um aplicativo Streamlit a um pacote de aplicativo, você deve carregar seus arquivos de código Streamlit em um estágio nomeado. Consulte PUT para obter informações sobre como fazer upload de arquivos para um estágio.

Para contabilizar várias versões de um Snowflake Native App, considere usar uma estrutura de diretório semelhante à seguinte para manter seus aplicativos Streamlit e arquivos de aplicativos relacionados:

@test.schema1.stage1:
└── /
    ├── manifest.yml
    ├── readme.md
    ├── scripts/setup_script.sql
    └── code_artifacts/
        └── streamlit/
            └── environment.yml
            └── streamlit_app.py
Copy

Observe que a estrutura de diretórios usada depende do seu ambiente.

Nota

O arquivo environment.yml deve estar no mesmo nível do arquivo principal do aplicativo Streamlit.

Consulte Referência a arquivos de código externos para obter mais informações sobre caminhos relativos.

Adição de um aplicativo Streamlit ao arquivo de manifesto

Para incluir um arquivo Streamlit em um pacote de aplicativo, adicione as seguintes entradas no arquivo manifest.yml.

artifacts:
  ...
  extension_code: true
  ...
Copy

A entrada extension_code: true é necessária para habilitar qualquer código de extensão em seu aplicativo.

configuration:
  ...
  default_streamlit: app_schema.streamlit_app_na
  ...
Copy

A entrada default_streamlit: app_schema.streamlit_app_na especifica o local do esquema que contém seu aplicativo Streamlit.

Adição de um aplicativo Streamlit ao script de configuração

O exemplo a seguir mostra como usar CREATE STREAMLIT dentro do script de configuração.

CREATE STREAMLIT app_schema.my_test_app_na
     FROM '/code_artifacts/streamlit'
     MAIN_FILE = '/streamlit_app.py';

GRANT USAGE ON SCHEMA APP_SCHEMA TO DATABASE ROLE app_public;
GRANT USAGE ON STREAMLIT APP_SCHEMA.MY_TEST_APP_NA TO DATABASE ROLE app_public;
Copy

Este exemplo cria um objeto Streamlit em um esquema denominado app_schema. O comando CREATE STREAMLIT usa o aplicativo Streamlit especificado na cláusula MAIN_FILE dentro do diretório especificado pela cláusula FROM.

Recursos Streamlit não suportados

Os seguintes recursos do Streamlit não são suportados atualmente:

Limitações ao usar Streamlit no Native App Framework

Esta seção descreve as limitações ao usar o Streamlit no Snowflake Native App Framework.

Componentes personalizados não são suportados

Componentes personalizados não são suportados.

Controle de versão integrado ou sistemas CI/CD não são suportados

Os aplicativos Streamlit não são integrados aos sistemas de controle de versão. As alterações no histórico do aplicativo ou no código são permanentes e não podem ser revertidas.

Não há integração com GitHub, GitLab ou outros fornecedores de controle de versão.

As edições do aplicativo podem ser visualizadas pelos visualizadores do aplicativo

Quando um desenvolvedor executa o aplicativo durante a edição, as alterações se tornam ativas imediatamente para os visualizadores do aplicativo.

As bibliotecas Seaborn e Matlibplot não são suportadas

As bibliotecas Seaborn e Matlibplot não são suportadas. Ambos têm dependências da função st.image() que atualmente não é suportada.

Solução de problemas do Streamlit

Se o aplicativo exibir um erro desconhecido, certifique-se de ter tentado as soluções descritas nas seções a seguir.

Como reconhecer os Termos de Serviço

Para usar o Streamlit e os pacotes fornecidos pela Anaconda no Snowflake, você deve confirmar os Termos de terceiros do Snowflake. Para saber mais, consulte Como usar pacotes de terceiros do Anaconda.

Lista de permissões de firewall

Cada aplicativo Streamlit usa um subdomínio exclusivo. Se você usar firewalls rígidos, adicione *.snowflake.app à sua lista de permissões de firewall. Adicionar esta entrada à sua lista de permissões permite que seus aplicativos se comuniquem com os servidores Snowflake sem quaisquer restrições.