创建并开发 Azure Databricks 应用后,请部署它,使其可在 Azure Databricks 工作区中访问。 部署生成应用,安装依赖项,并使用项目文件中定义的配置运行它。 可以使用 Azure Databricks UI 或 Databricks CLI 部署应用。
注释
如果从模板创建应用,Azure Databricks 会在首次创建应用时自动部署它。 但是,在进行更改后,仍可以稍后重新部署它。 请参阅 从模板创建 Databricks 应用。
部署逻辑
Databricks Apps 支持部署使用 Python、Node.js或两者组合的应用程序。 这允许灵活的架构,例如一个 Node.js 前端与一个 Python 后端。
在部署期间,构建过程会检查应用程序目录根的 package.json 文件,以确定是否使用了 Node.js。 如果存在,它将包含特定于 Node.js 的构建步骤以及 Python 步骤。 部署逻辑遵循以下模式:
如果 package.json 存在:
- 运行
npm install - 运行
pip install -r requirements.txt(如果存在) - 运行
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 不存在:
- 运行
pip install -r requirements.txt(如果存在) - 运行指定的
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 存储库进行部署。
从工作区文件夹部署
Databricks 用户界面
若要从 Azure Databricks UI 部署应用,请执行以下作:
- 将应用文件上传到 Azure Databricks 工作区。 有关说明,请参阅 导入文件。
- 单击侧栏中的
计算。 - 转到“ 应用 ”选项卡,然后单击“ 名称 ”列中应用的链接。
- 单击“ 部署 ”并选择在其中上传应用文件的工作区中的文件夹。
- 单击 “选择”,然后单击 “部署”。
- 查看配置,然后单击“ 部署”。
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任何大型数据文件或生成项目。通过查看工作区中的文件来验证上传。 单击边栏中的
工作区” ,并导航到为应用创建的目录。通过运行以下命令部署应用。 将应用名称和源代码路径替换为你的值。
databricks apps deploy my-app-name \ --source-code-path /Workspace/Users/my-email@org.com/my-appCLI 显示部署进度,并确认应用运行时。
从 Git 存储库部署
重要
此功能在 Beta 版中。 如果管理员禁用该功能,则从 Git 部署的现有应用将继续运行,但在重新启用预览或从应用中删除存储库之前,无法重新部署或重启它们。
若要从 Git 存储库部署应用,请在应用级别添加存储库,然后在部署时指定 Git 引用。 Git 仓库必须包含应用文件,包括 app.yaml 依赖项和入口点。 支持所有主要 Git 提供程序,包括 GitHub、GitLab 和 Bitbucket。
若要从 Git 配置和部署应用,请执行以下作:
- 将应用文件上传到 Git 存储库。
- 在 Azure Databricks 工作区中,单击边栏中的
“计算 ”。 - 转到 “应用 ”选项卡,选择要编辑的现有应用,或单击“ 创建应用”。
- 在 “配置 Git 存储库 ”步骤中,输入 Git 存储库 URL(例如
https://github.com/org/repo),并选择 Git 提供程序。 - 单击“ 创建应用 ”或 “保存” 返回到应用详细信息页。
- 对于专用存储库,应用的服务主体必须配置 Git 凭据。 在应用详细信息页上,单击“ 配置 Git 凭据”。 或者,编辑应用并在 “配置 Git 存储库 ”步骤中添加凭据。 你必须对应用具有添加 Git 凭据的
CAN MANAGE权限。 有关每个提供程序的说明,请参阅 将 Git 提供程序连接到 Databricks。
重要
为了安全性,Azure Databricks 在将部署源(从 Git 更改为工作区或工作区更改为 Git)或更改 Git 存储库时删除与应用服务主体关联的所有 Git 凭据。 仅更改 Git 引用不会删除凭据。 更改部署源或存储库后,必须重新配置 Git 凭据,以便再次从 Git 进行部署。
注释
仅当启用 Git 部署 Beta 功能时,应用创建者才会自动接收 CAN MANAGE 对服务主体的权限。 如果在禁用该功能时创建了应用,则可能无权添加 Git 凭据。
服务主体支持每个提供程序一个 Git 凭据。 更新凭据(例如通过帐户控制台中)会替换该提供程序的现有凭据,并影响由该提供程序提供的服务主体使用的所有应用。
然后,部署应用:
- 在应用详细信息页上,单击“ 部署”。
- 从 Git 中选择。
- 对于 Git 引用,请输入分支名称、标记或提交 SHA(例如,
mainv1.0.0或提交哈希)。 - 对于 引用类型,请指定引用类型,例如分支、标记或提交。
- 单击“部署”。
对于分支或标签引用,Azure Databricks 从该分支或标签部署最新的提交。 对于提交 SHA 引用,Azure Databricks 始终部署该特定提交。 如果服务主体的 Git 凭据无效或已过期,则部署将失败。
部署后行为
部署完成后,Azure Databricks 会根据app.yaml文件中定义的command启动应用程序,或者默认运行python app.py。 应用详细信息页显示当前状态,并提供对日志、部署历史记录和环境信息的访问权限。
若要查看已部署应用的输出,请单击应用链接。
转到“ 日志 ”选项卡进行调试和运行时监视。 请参阅 Databricks 应用的日志记录和监视。
更新或重新部署应用
在对源代码或配置进行更改后重新部署应用。 重新部署会应用最新的更新,而无需重新创建应用。 可以随时从工作区或 Git 存储库重新部署。
从工作区文件夹重新部署
若要从工作区文件夹重新部署,请执行以下操作:
- 更新工作区文件夹中的应用文件。
- 选择应用,然后单击“ 部署”。
- 如果源代码路径已更改或要从 Git 源切换,请单击 “部署 ”旁边的箭头,然后选择 “使用其他源进行部署”。
从 Git 存储库重新部署
若要从 Git 存储库重新部署,请执行以下作:
- 将更改推送到 Git 存储库。
- 在 Azure Databricks 工作区中,选择应用并单击“ 部署”。
- 如果 Git 引用已更改或要从工作区源切换,请单击 “部署 ”旁边的箭头,然后选择 “使用其他源进行部署”。
若要更改 Git 存储库或凭据,请编辑应用配置。 从应用中删除 Git 存储库会从工作区强制部署。
重要
更改 Git 存储库或在部署源(Git 和工作区)之间切换会删除应用服务主体的所有 Git 凭据。 在再次从 Git 部署之前,必须重新配置凭据。
排查部署问题
如果应用无法部署或未按预期运行,请尝试以下故障排除步骤:
- 检查日志中的错误消息或运行时输出。
- 验证
app.yaml语法和设置。 - 请验证
env部分中的机密和环境变量是否已正确解析。 - 确认包括或安装所有必需的依赖项。
对于 Git 存储库部署:
- 对于专用存储库,请验证应用的服务主体是否已配置 Git 凭据。
- 验证 Git 存储库 URL 是否正确。
- 验证存储库中是否存在 Git 引用(分支、标记或提交)。
后续步骤
- Databricks 应用的日志记录和监视
- 为 Databricks 应用配置权限
配置 Databricks 应用执行与