创建并开发Azure Databricks应用后,将其部署,使其在Azure Databricks工作区中可访问。 部署生成应用,安装依赖项,并使用项目文件中定义的配置运行它。 可以使用 Azure Databricks UI 或 Databricks CLI 部署应用。
注释
如果从模板创建应用,Azure Databricks首次创建应用时自动部署它。 但是,在进行更改后,仍可以稍后重新部署它。 请参阅 从模板创建 Databricks 应用。
部署逻辑
Databricks Apps 支持部署使用Python、Node.js或两者组合的应用程序。 这允许灵活的体系结构,例如具有Python后端的 Node.js 前端。
在部署期间,构建过程会检查应用程序目录根的 package.json 文件,以确定是否使用了 Node.js。 如果存在,它将包含特定于节点的构建步骤和Python步骤。 部署逻辑遵循以下模式:
如果 package.json 存在:
- 运行
npm install - 安装Python依赖项:
- 如果
requirements.txt存在,请运行pip install -r requirements.txt - 如果
requirements.txt不存在且同时pyproject.tomluv.lock存在,请运行uv sync以安装依赖项
- 如果
- 运行
npm run build(如果在build中定义了package.json脚本) - 运行指定的
app.yaml命令,或者npm run start如果未指定任何命令
注释
如果未在 app.yaml 中指定命令,则即使应用包含Python代码,Azure Databricks也会执行 npm run start。 若要同时运行Python和 Node.js 进程,请定义使用 start 等工具启动这两个进程的自定义 concurrently 脚本。 例如: concurrently "npm run start:node" "python my_app.py"。
如果 package.json 不存在:
- 安装Python依赖项:
- 如果
requirements.txt存在,请运行pip install -r requirements.txt - 如果
requirements.txt不存在且同时pyproject.tomluv.lock存在,请运行uv sync以安装依赖项
- 如果
- 运行指定的
app.yaml命令,或者python <my-app>.py如果未指定任何命令
准备部署
在部署应用之前,请验证项目是否包含必要的组件:
-
主脚本 - 入口点文件,例如
app.py或app.js。 -
可选
app.yaml文件 - 如果应用需要自定义命令或环境变量,请包含用于app.yaml配置执行的文件。 请参阅使用app.yaml配置 Databricks 应用执行。 - 依赖项 - 确保所有依赖项都可用。 请参阅 管理 Databricks 应用的依赖项。
-
机密或环境值 - 如果使用
env中的app.yaml节,请验证引用的机密或外部源是否已正确配置和可访问。 请参阅 将资源添加到 Databricks 应用。
此外,请确保应用 服务主体 有权访问源代码文件夹。
选择部署源
可以从以下源部署 Databricks 应用:
- 工作区文件夹 - 将应用文件上传到工作区文件夹并从中部署。 这是标准部署方法。
- Git 存储库 - 为应用配置 Git 存储库,并直接部署,而无需将文件上传到工作区。 每次部署时,应用都会从配置的 Git 引用(分支、标记或提交)读取代码。 还可以指定要从存储库中的特定目录部署的源代码路径。 支持所有主要 Git 提供程序,包括 GitHub、GitLab 和 Bitbucket。 有关受支持的提供程序的完整列表,请参阅 将 Git 提供程序连接到 Databricks。
可以随时在同一应用的工作区和 Git 源之间切换,除非工作区管理员强制实施仅限 Git 的部署。 请参阅 仅使用 Git 的部署。
强制实施仅使用 Git 的部署
工作区管理员可以要求工作区中的所有应用从 Git 存储库进行部署。 若要启用此设置,请转到 “设置>开发>应用 ”并启用 “仅允许来自 Git 的应用部署”。 默认情况下,此设置处于关闭状态。
启用此设置时:
- 在创建应用之前,用户必须配置 Git 存储库。
- 用户只能从 Git 部署,不能从工作区文件夹进行部署。
- Databricks 在工作区中禁用应用模板。
- 用户无法从具有 Git 存储库的应用中删除 Git 存储库。
- 现有应用继续运行,但除非应用具有 Git 存储库,否则用户无法重新部署或启动它们。
部署应用
以下部分介绍如何从工作区文件夹或直接从 Git 存储库进行部署。
从工作区文件夹部署
Databricks 用户界面
若要从 Azure Databricks UI 部署应用,请执行以下操作:
- 将应用文件上传到Azure Databricks工作区。 有关说明,请参阅 导入文件。
- 在 Databricks 工作区中,单击
应用切换器并选择 Databricks Apps。
- 在 “名称” 列中选择你的应用。
- 单击“ 部署 ”并选择在其中上传应用文件的工作区中的文件夹。
- 单击 “选择”,然后单击 “部署”。
Databricks 命令行界面 (CLI)
若要使用 CLI 部署应用,请执行以下作:
打开终端并导航到包含应用文件的目录。
使用
sync命令将应用文件上传到Azure Databricks工作区。 将路径替换为要上传文件的工作区位置。databricks sync --watch . /Workspace/Users/my-email@org.com/my-app该
--watch标志使同步进程保持运行状态,并在本地修改文件时自动上传更改。 若要从同步中排除特定文件或目录,请将它们添加到.gitignore本地应用目录中的文件。 要排除的常见文件包括node_modules/、.env、__pycache__/和.DS_Store任何大型数据文件或生成项目。通过查看工作区中的文件来验证上传。 单击
切换器 >Lakehouse,然后单击
工作区 ”并导航到为应用创建的目录。通过运行以下命令部署应用。 将应用名称和源代码路径替换为你的值。
databricks apps deploy my-app-name \ --source-code-path /Workspace/Users/my-email@org.com/my-appCLI 显示部署进度,并确认应用运行时。
从 Git 存储库部署
若要从 Git 存储库部署应用,请在应用级别添加存储库,然后在部署时指定 Git 引用。 Git 仓库必须包含应用文件,包括 app.yaml 依赖项和入口点。 支持所有主要 Git 提供程序,包括 GitHub、GitLab 和 Bitbucket。 还可以使用 UI、CLI、API 或声明性自动化捆绑包部署 Git 支持的应用。
Databricks 用户界面
若要从 Git 配置和部署应用,请执行以下作:
- 将应用文件上传到 Git 存储库。
- 在 Databricks 工作区中,单击
应用切换器并选择 Databricks Apps。
- 选择要编辑的现有应用,或单击“ + 创建应用”。
- 在 “配置 Git 存储库 ”步骤中,输入 Git 存储库 URL(例如
https://github.com/org/repo),并选择 Git 提供程序。 - 单击“ 创建应用 ”或 “保存” 返回到应用详细信息页。
- 对于专用存储库,应用的服务主体必须配置 Git 凭据。 在应用详细信息页上,单击“ 配置 Git 凭据”,或编辑应用并在 “配置 Git 存储库 ”步骤中添加凭据。 你必须对应用具有添加 Git 凭据的
CAN MANAGE权限。 公共存储库不需要 Git 凭据。 有关每个提供程序的说明,请参阅 将 Git 提供程序连接到 Databricks。
然后,部署应用:
- 在应用概述页上,单击“ 部署”。
- 从 Git 中选择。
- 对于 Git 引用,请输入分支名称、标记或提交 SHA(例如,
mainv1.0.0或提交哈希)。 - 对于 引用类型,请指定引用类型,例如分支、标记或提交。
- (可选)对于 源代码路径,请输入存储库中特定目录的路径。 应用将该目录视为顶级目录,并且无法访问其外部的文件。 如果未指定路径,Databricks 将使用存储库根目录。
- 单击“部署”。
Databricks 命令行界面 (CLI)
使用 CLI 从 Git 部署应用:
将应用文件上传到 Git 存储库。
在创建应用时在应用上配置 Git 存储库,或将其添加到现有应用。 支持的提供程序包括
gitHub、gitHubEnterprise、gitLab、gitLabEnterpriseEdition、bitbucketCloud、bitbucketServer、azureDevOpsServices和awsCodeCommit。若要创建配置了 Git 存储库的新应用,请使用 create 命令:
databricks apps create my-app \ --json '{"git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'若要在现有应用上添加或更新 Git 存储库,请使用 create-update 命令:
databricks apps create-update my-app \ --json '{"update_mask": "git_repository", "git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'对于专用存储库,请为应用的服务主体配置 Git 凭据。 你必须对应用具有添加 Git 凭据的
CAN MANAGE权限。 公共存储库不需要 Git 凭据。若要使用 CLI 将 Git 凭据添加到应用的服务主体,请运行:
databricks git-credentials create --json '{ "git_provider": "gitHub", "git_email": "your-email@example.com", "personal_access_token": "YOUR_TOKEN", "principal_id": YOUR_SP_ID, "name": "GitHub credentials for SP" }'将
YOUR_SP_ID替换为应用的服务主体 ID。 有关获取每个提供程序的个人访问令牌的说明,请参阅 将 Git 提供程序连接到 Databricks。通过指定 Git 引用来部署应用。 可以指定一个
branch、tag或commit(这些是相互排斥的)。 (可选)可以包括source_code_path来从存储库中的子目录进行部署。databricks apps deploy my-app \ --json '{"git_source": {"branch": "main"}}'若要部署特定标签或提交,请执行以下操作:
databricks apps deploy my-app \ --json '{"git_source": {"tag": "v1.0.0"}}'databricks apps deploy my-app \ --json '{"git_source": {"commit": "abc123def456"}}'若要从存储库中的子目录进行部署,请执行以下操作:
databricks apps deploy my-app \ --json '{"git_source": {"branch": "main", "source_code_path": "apps/my-app"}}'CLI 显示部署进度,并确认应用运行时。
对于分支或标记引用,Azure Databricks将从该分支或标记中部署最新的提交。 对于提交 SHA 引用,Azure Databricks 始终执行该特定提交。 如果服务主体的 Git 凭据无效或已过期,则部署将失败。
注释
在 Git 部署普遍可用之前创建的应用不会自动授予创建者对应用服务主体的 CAN MANAGE 权限。 如果您需要将 Git 凭据添加到较旧的应用,请让工作区管理员授予您对 CAN MANAGE 服务主体的权限。
服务主体支持每个提供程序一个 Git 凭据。 如果在其他位置(例如通过帐户控制台)更新凭据,它将替换该提供程序的现有凭据。
部署后行为
部署完成后,Azure Databricks 会根据您的 command 文件中定义的 app.yaml 启动应用程序,如果没有定义,默认运行 python app.py。 应用详细信息页显示当前状态,并提供对日志、部署历史记录和环境信息的访问权限。
若要查看已部署应用的输出,请单击应用链接。
转到“ 日志 ”选项卡进行调试和运行时监视。 请参阅 Databricks 应用的日志记录和监视。
更新或重新部署应用
在对源代码或配置进行更改后重新部署应用。 重新部署会应用最新的更新,而无需重新创建应用。 可以随时从工作区或 Git 存储库重新部署。
从工作区文件夹重新部署
若要从工作区文件夹重新部署,请执行以下操作:
- 更新工作区文件夹中的应用文件。
- 选择应用,然后单击“ 部署”。
- 如果源代码路径已更改或要从 Git 源切换,请单击 “部署 ”旁边的箭头,然后选择 “使用其他源进行部署”。
从 Git 存储库重新部署
若要从 Git 存储库重新部署,请执行以下作:
- 将更改推送到 Git 存储库。
- 在Azure Databricks工作区中,选择应用并单击Deploy。
- 如果 Git 引用已更改或要从工作区源切换,请单击 “部署 ”旁边的箭头,然后选择 “使用其他源进行部署”。
若要更改 Git 存储库或凭据,请编辑应用配置。 若要使用 CLI 或 API 更新 Git 存储库,请使用 create-update 命令。 从应用中删除 Git 存储库会从工作区强制部署。
重要
更改 Git 存储库或在部署源(Git 和工作区)之间切换会删除应用服务主体的所有 Git 凭据。 仅更改 Git 引用不会删除凭据。 在再次从 Git 部署之前,必须重新配置凭据。
排查部署问题
如果应用无法部署或未按预期运行,请尝试以下故障排除步骤:
- 检查日志中的错误消息或运行时输出。
- 验证
app.yaml语法和设置。 - 请验证
env部分中的机密和环境变量是否已正确解析。 - 确认包括或安装所有必需的依赖项。
- 如果你的工作区使用专用链接 (专用链接) 或者受限的出口网络策略,请确认所需的域名是否被列入白名单。 缺少出口允许列表条目是专用链接环境中部署失败的常见原因。 请参阅 在 专用链接 环境中部署应用程序。
对于 Git 存储库部署:
- 对于专用存储库,请验证应用的服务主体是否已配置 Git 凭据。
- 验证 Git 存储库 URL 是否正确,以及存储库中是否存在 Git 引用(分支、标记或提交)。
- 如果工作区管理员强制实施仅限 Git 的部署,则除非已配置 Git 存储库,否则无法部署或启动应用。
- 如果从 CLI、API 或声明性自动化捆绑包进行部署,请先创建应用,然后将 Git 凭据添加到应用的服务主体。
后续步骤
- Databricks 应用的日志记录和监视
- 为 Databricks 应用配置权限
配置 Databricks 应用执行与