Limitações e recursos não suportados

Este tópico descreve as seguintes limitações no Streamlit in Snowflake:

Recursos Streamlit não suportados

Os seguintes recursos do Streamlit não são compatíveis no Streamlit in Snowflake:

Limitações ao carregar recursos externos no Streamlit in Snowflake

Todos os aplicativos do Streamlit in Snowflake são executados dentro da Política de segurança de conteúdo (CSP), que restringe quais recursos podem ser carregados. O Snowflake bloqueia o carregamento de código de qualquer domínio externo, incluindo scripts, estilos, fontes e incorporação de iframe. No entanto, o carregamento de um subconjunto de recursos do Mapbox é compatível.

Quando você usa os comandos Streamlit st.map ou st.pydeck_chart, o Mapbox fornece os blocos do mapa ao renderizar o conteúdo do mapa. Mapbox é um aplicativo de terceiros e está sujeito aos Termos das ofertas externas da Snowflake.

O carregamento de imagens ou mídia de domínios externos é compatível no Streamlit in Snowflake, mas não no Snowflake Native App Framework.

Por exemplo, o código a seguir é executado sem erro do Python, mas o script não carrega nem executa no navegador:

# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
Copy

A CSP também bloqueia chamadas de front-end, que geralmente são consideradas inseguras, como eval().

Nota

Os desenvolvedores de aplicativos são responsáveis pelas verificações de segurança e pela cadeia de fornecimento de software do código do aplicativo do Streamlit in Snowflake, de acordo com o Modelo de responsabilidade compartilhada da Snowflake.

Limitações do Streamlit in Snowflake adicionais

O Streamlit in Snowflake tem as seguintes limitações adicionais:

Limites dos aplicativos Streamlit para recuperação de dados

Os aplicativos Streamlit executados em Streamlit in Snowflake e em Snowflake Native App têm um limite de 32MB na quantidade de dados que podem ser recuperados de uma única consulta. Consultas que excedem 32MB geram o seguinte erro:

MessageSizeError: Data Size exceeds message limit

Para evitar esse limite, projete seus aplicativos Streamlit para recuperar dados em incrementos menores que 32MB.

O editor do Streamlit in Snowflake não oferece suporte a estágios com criptografia no lado do servidor

O editor Streamlit in Snowflake não oferece suporte à criação de um objeto STREAMLIT a partir de arquivos em um estágio nomeado que usa criptografia no lado do servidor. Nesta situação, Snowsight retorna um erro.

Streamlit in Snowflake oferece suporte apenas a estágios internos que usam criptografia do lado do cliente.

Compatibilidade parcial entre st.cache_data e st.cache_resource

st.cache_data e st.cache_resource não são totalmente suportados em Streamlit in Snowflake. O cache só funciona em uma única sessão. Os valores armazenados em cache não podem ser transferidos para outras sessões e compartilhados entre diferentes usuários de um aplicativo Streamlit.

Algumas considerações sobre a compatibilidade dos aplicativos Streamlit de várias páginas

Os aplicativos Streamlit de várias páginas são suportados com as seguintes considerações:

  • Aplicativos Streamlit de várias páginas só podem ser criados usando comandos SQL. Consulte Criação e implementação de aplicativos Streamlit usando SQL.

  • Os URLs das páginas individuais não são suportados.

  • Os arquivos enviados para o diretório /pages ficam visíveis no ROOT_LOCATION do estágio nomeado.