配置 Databricks 应用执行,使用 app.yaml

app.yaml Databricks 应用中的文件定义应用的执行方式。 默认情况下,Azure Databricks 使用命令 python app.py运行应用。 如果你的应用需要不同的入口点或特定于环境的配置,则可以在项目中包括一个可选 app.yaml 文件来自定义执行行为。

可以使用 .yaml.yml 文件扩展名。 此文件必须位于项目目录的根目录中。

支持的设置

该文件 app.yaml 支持以下设置。

设置 类型 说明
command sequence 用于运行应用的可选参数集。 如果需要自定义命令来运行应用,请使用此设置。 默认值为 [python, app.py].
由于命令未在 shell 中运行,因此不会将应用配置外部定义的环境变量传递给应用。 如果应用需要其他参数才能运行,请使用结构 env
此设置是可选的。
env list Databricks 在应用运行时环境中自动设置多个 默认环境变量 。 此顶级密钥定义了要传递给应用的其他环境变量的可选列表。 每个变量都可以使用硬编码值或引用外部源,例如机密或数据库条目。
列表中的有效项包括:
  • name:环境变量的名称。
  • 下列其中一项:
    • value:环境变量的值。
    • valueFrom:包含值的外部源的名称,例如机密或数据库表。 请参阅 使用环境变量访问资源

此设置是可选的。

Streamlit 应用示例app.yaml

以下 app.yaml 文件演示如何配置 Streamlit 应用。 它使用自定义命令启动应用 streamlit run,并为 SQL 仓库 ID 和使用情况跟踪标志设置环境变量。

command: ['streamlit', 'run', 'app.py']
env:
  - name: 'DATABRICKS_WAREHOUSE_ID'
    value: 'quoz2bvjy8bl7skl'
  - name: 'STREAMLIT_GATHER_USAGE_STATS'
    value: 'false'

如果应用依赖于特定的计算资源(例如 SQL 仓库),或者需要某些环境变量来控制运行时行为,请使用如下所示的设置。

Flask 应用示例app.yaml

此示例演示如何使用 Gunicorn 服务器配置 Flask 应用。 该 command 设置指定 Gunicorn 启动参数,该 env 节将 Unity 目录卷的路径设置为环境变量。

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: 'VOLUME_URI'
    value: '/Volumes/catalog-name/schema-name/dir-name'

当你的应用需要生产就绪的 WSGI 服务器(如 Gunicorn)以及它依赖于存储在 Unity 目录卷或其他特定于环境的路径中的数据时,请使用此方法。