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
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
...
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
...
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;
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:
-
As propriedades
page_title
epage_icon
do comando st.set_page_config não são suportadas. Componentes personalizados, incluindo:
Elementos de mídia, incluindo:
Recursos experimentais, incluindo:
HTML inseguro usando
unsafe_allow_html=True
não é suportado em st.markdownAcesso à rede via internet
Links de âncora
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.
AWS PrivateLink não é suportado.¶
O uso de AWS PrivateLink para acessar o aplicativo Streamlit não é suportado.
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.