创建 Streamlit 应用程序¶
先决条件¶
在使用 Snowflake CLI 创建 Streamlit 应用程序之前,应满足以下先决条件:
确保您的账户具有正确的权限,如 创建和使用 Streamlit 应用程序所需的权限 中所述。
确保可以创建或访问您能在其中上传 Streamlit 应用程序文件的命名暂存区。
引导 Streamlit 应用程序¶
snow init
命令用于创建本地目录,其中包含一组示例文件,可帮助您开始创建 Streamlit 应用程序。当您执行此命令时,Snowflake CLI 会创建以下目录结构:
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”
要初始化 Streamlit 应用程序,请输入以下命令:
snow init new_streamlit_project --template example_streamlit -D query_warehouse=dev_warehouse -D stage=testing
小心
执行其他 snow streamlit
命令时,项目目录中的文件会被 Snowflake CLI Snowflake 处理,并且可以上传到 Snowflake。在将任何敏感信息放入项目目录中的文件中时应小心谨慎。
有关文件结构的更多信息,请参阅 在本地文件系统上创建 Streamlit 文件。
为 Streamlit 应用程序创建项目定义¶
Snowflake 中的每个 Streamlit 应用程序都必须包含一个 snowflake.yml
项目定义文件。Streamlit 限制为每个项目定义文件对应一个应用程序。
下面显示的是一个 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
下表描述了 Streamlit 项目定义的属性。
属性 |
定义 |
---|---|
identifier 可选,字符串型 |
实体的可选 Snowflake 标识符。该值可以采用以下形式:
|
type 可选,字符串型 |
必须是 |
comment 可选,字符串型 |
对 Streamlit 仪表板的注释。 |
title 可选,字符串型 |
Streamlit 仪表板的可读标题。 |
stage 可选,字符串型 |
存储应用程序工件的暂存区。默认值:None。 |
query_warehouse 必填,字符串型 |
用于托管应用程序的 Snowflake 仓库。 |
main_file 可选,字符串型 |
streamlit 应用程序的 ` 入口点文件 <https://docs.streamlit.io/get-started/tutorials/create-an-app (https://docs.streamlit.io/get-started/tutorials/create-an-app)>`_。默认值:“streamlit_app.py”。 |
pages_dir 可选,字符串型 |
Streamlit ` 页面 <https://docs.streamlit.io/get-started/tutorials/create-a-multipage-app (https://docs.streamlit.io/get-started/tutorials/create-a-multipage-app)>`_。默认值:“pages”。 |
external_access_integrations optional、string sequence |
此 Streamlit 应用程序代码访问外部网络所需的 外部访问集成 的名称。有关更多详细信息,请参阅 CREATE STREAMLIT。 |
secrets optional、dictionary |
将密钥的名称分配给变量,以便在从应用程序代码中的密钥中检索信息时,可以使用这些变量引用密钥。 |
imports optional、string sequence |
要导入的先前已上传文件的暂存区和路径。有关更多详细信息,请参阅 CREATE STREAMLIT。 |
artifacts required、string sequence |
应包含在部署工件中的文件的列表。 |