Criação de um aplicativo Streamlit¶
Pré-requisitos¶
Antes de criar um aplicativo Streamlit com Snowflake CLI, você deve atender aos seguintes pré-requisitos:
Certifique-se de que sua conta tenha os privilégios corretos conforme descrito em Privilégios necessários para criar e usar um aplicativo Streamlit.
Certifique-se de poder criar ou ter acesso a um estágio nomeado onde você pode fazer upload dos arquivos do aplicativo Streamlit.
Como inicializar um aplicativo Streamlit¶
O comando snow init
cria um diretório local com um conjunto de arquivos de amostra que ajudam você a começar a criar um aplicativo Streamlit. Ao executar este comando, o Snowflake CLI cria a seguinte estrutura de diretório:
example_streamlit/ - project name (default: example_streamlit)
snowflake.yml - configuration for snow streamlit commands
environment.yml - additional config for Streamlit, for example installing packages
streamlit_app.py - entrypoint file of the app
pages/ - directory name for Streamlit pages (default pages)
common/ - example “shared library”
Para inicializar um aplicativo Streamlit, digite o seguinte comando:
snow init new_streamlit_project --template example_streamlit -D query_warehouse=dev_warehouse -D stage=testing
Cuidado
Os arquivos dentro de um diretório de projeto são processados por Snowflake CLI e podem ser carregados no Snowflake ao executar outros comandos snow streamlit
. Você deve ter cuidado ao colocar qualquer informação confidencial dentro de arquivos em um diretório de projeto.
Para obter mais informações sobre a estrutura do arquivo, consulte Criação de arquivos Streamlit em seu sistema de arquivo local.
Criação da definição do projeto para um aplicativo Streamlit¶
Cada aplicativo Streamlit no Snowflake deve incluir um arquivo de definição de projeto snowflake.yml
. O Streamlit é limitado a um aplicativo por arquivo de definição de projeto.
A seguir mostramos um exemplo de arquivo de definição de projeto snowflake.yml
:
definition_version: 2
entities:
my_streamlit:
type: streamlit
identifier: streamlit_app
stage: my_streamlit_stage
query_warehouse: my_streamlit_warehouse
main_file: streamlit_app.py
pages_dir: pages/
external_access_integrations:
- test_egress
secrets:
dummy_secret: "db.schema.dummy_secret"
imports:
- "@my_stage/foo.py"
artifacts:
- common/hello.py
- environment.yml
A tabela a seguir descreve as propriedades de uma definição de projeto Streamlit.
Propriedade |
Definição |
---|---|
identifier optional, string |
Identificador Snowflake opcional para a entidade. O valor pode ter as seguintes formas:
|
type optional, string |
Deve ser |
comment optional, string |
Comentário sobre o painel do Streamlit. |
title optional, string |
Título legível para humanos para o painel Streamlit. |
stage optional, string |
Estágio em que os artefatos do aplicativo serão armazenados. Padrão: nenhum. |
query_warehouse required, string |
Warehouse Snowflake para hospedar o aplicativo. |
main_file optional, string |
Arquivo de ponto de entrada do aplicativo streamlit. Padrão: «streamlit_app.py». |
pages_dir optional, string |
Páginas Streamlit. Padrão: “páginas”. |
external_access_integrations opcional, sequência de cadeias de caracteres |
Nomes de integrações de acesso externo necessárias para que esse código de aplicativo Streamlit acesse redes externas. Consulte os parâmetros opcionais de CREATE STREAMLIT para obter mais detalhes. |
segredos opcional, dicionário |
Atribui os nomes dos segredos a variáveis para que você possa usar as variáveis para fazer referência aos segredos ao recuperar informações dos segredos no código do aplicativo. |
importações opcional, sequência de cadeias de caracteres |
Estágio e caminho para os arquivos enviados anteriormente que você deseja importar. Consulte os parâmetros opcionais de CREATE STREAMLIT para obter mais detalhes. |
artifacts obrigatório, sequência de cadeias de caracteres |
Lista de pares de origem e destino de arquivos para adicionar à raiz de implantação. É possível usar as seguintes propriedades de artefato:
Se Você também pode passar uma cadeia de caracteres para cada item em vez de um |