Databricks Apps 配置
本文详细介绍 Databricks Apps 环境中自动配置的设置,并介绍如何定义应用所需的自定义配置。
Databricks 应用环境设置多个环境变量,例如运行应用的 Azure Databricks 工作区的 URL,以及执行应用身份验证所需的值。 但是,有时你的应用需要其他自定义变量。 例如,可能需要一个自定义命令来运行应用或参数以连接到 SQL 仓库。 对于这些自定义配置参数,请使用 app.yaml
该文件。
使用 app.yaml
文件配置 Databricks 应用
注意
应用配置文件可以使用 .yaml
或 .yml
扩展。
若要为应用定义自定义配置,请将文件添加到 app.yaml
项目。 下表显示了可在文件中定义的 app.yaml
设置,后跟示例配置文件。
app.yaml 设置 |
---|
command 类型: sequence 用于运行应用的可选参数集。 如果需要自定义命令来运行应用,请使用此设置。 默认值为 [python, app.py] .该命令不在 shell 中运行,因此环境中设置的任何值都不会传递到应用。 如果应用需要其他参数才能运行,请使用结构 env 。此设置是可选的。 |
env 类型: list 用于定义要传递给应用的环境变量的可选键值对列表的顶级密钥。 value 可以是实际参数值,也可以是存储该值的位置的引用。 列表中的有效项包括:- name :环境变量的名称。- 以下项之一: - value :环境变量的值。- valueFrom :对于外部定义的值,包含该值的源的名称。 例如,机密或包含该值的数据库表的名称。此设置是可选的。 |
Streamlit 应用示例app.yaml
以下示例 app.yaml
配置文件运行 Streamlit 应用,传入 SQL 仓库 ID 和参数的值 STREAMLIT_GATHER_USAGE_STATS
:
command: [
"streamlit",
"run",
"app.py"
]
env:
- name: "DATABRICKS_WAREHOUSE_ID"
value: "quoz2bvjy8bl7skl"
- name: "STREAMLIT_GATHER_USAGE_STATS"
value: "false"
Flask 应用示例app.yaml
以下示例 app.yaml
配置文件使用 Gunicorn 服务器运行 Flask 应用,并设置包含 Unity 目录卷的路径的环境变量:
command:
- gunicorn
- app:app
- -w
- 4
env:
- name: "VOLUME_URI"
value: "/Volumes/catalog-name/schema-name/dir-name"
引用 Databricks 机密
若要引用配置为应用的资源依赖项的机密,请在配置部分valueFrom: <dependency_name>
进行设置。env
app.yaml
替换为 dependency_name
机密资源的配置中的资源密钥值。 若要了解有关 Databricks 应用资源依赖项的详细信息,请参阅如何实现将 Databricks 应用与 Azure Databricks 服务集成?。 若要详细了解如何管理 Databricks 机密,请参阅 “管理机密”。
以下示例 app.yaml
引用配置为资源依赖项的机密:
command: [
"python",
"app.py"
]
env:
- name: "SECRET_KEY"
valueFrom: "secret-name"
Databricks Apps 环境变量
Databricks Apps 环境中自动设置以下变量,并可供所有应用使用。 如果需要设置其他环境变量,请将其添加到 app.yaml 文件。
变量 | 说明 |
---|---|
DATABRICKS_APP_NAME |
正在运行的应用的名称。 |
DATABRICKS_WORKSPACE_ID |
应用所属的 Databricks 工作区的唯一 ID。 |
DATABRICKS_HOST |
应用所属的 Databricks 工作区的 URL。 |
DATABRICKS_APP_PORT |
应用应侦听的网络端口。 |
DATABRICKS_CLIENT_ID |
分配给应用的 Databricks 服务主体的客户端 ID。 |
DATABRICKS_CLIENT_SECRET |
分配给应用的 Databricks 服务主体的 OAuth 机密。 |
Streamlit 的默认环境变量
Databricks 应用环境中自动配置以下特定于 Streamlit 的变量,并可供使用 Streamlit 框架的 Databricks 应用使用:
变量 | 说明 |
---|---|
STREAMLIT_SERVER_ADDRESS |
Streamlit 要使用的服务器地址。 此值设置为 0.0.0.0,不能重写。 |
STREAMLIT_SERVER_PORT |
Streamlit 使用的端口。 此值设置为DATABRICKS_APP_PORT,不能重写。 |
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION |
由于 Databricks Apps 反向代理可防范跨站点请求伪造(XSRF),因此设置为 false 。 |
STREAMLIT_SERVER_ENABLE_CORS |
由于 Databricks Apps 反向代理可防止跨域资源共享(CORS),因此设置为 false 。 |
STREAMLIT_SERVER_HEADLESS |
这设置为 true so Streamlit 运行,无需在启动时打开浏览器窗口。 |
STREAMLIT_BROWSER_GATHER_USAGE_STATS |
此设置设置为 false 阻止将用户统计信息发送到 Streamlit。 |