我正在遵循教程 使用 Azure DevOps 在 Azure Databricks 上持续集成和交付,以自动化在 Azure Databricks 群集上部署和安装库的过程。但是,我被困在“将库部署到 DBFS”步骤中,使用 Data Thirst 的 Databricks 脚本部署任务扩展中的任务 Databricks 文件到 DBFS。
它不断地给我这个错误:
##[error]The remote server returned an error: (403) Forbidden.
该任务的配置如下所示:
我检查了我的令牌,当我尝试通过 Databricks CLI 手动上传库时,它工作正常。因此,问题不应该是由于令牌的许可造成的。
任何人都可以建议任何解决方案吗?或者是否有其他方法可以通过 Azure DevOps 上的发布 CD 管道将库部署到 Azure Databricks 上的集群?
您是否在 Databricks 中检查了您的 Azure 区域?如果您在 Azure Devops 中不使用相同的 Azure 区域,您将收到 403 错误。
经过多次尝试,发现如果不使用扩展,直接在管道中使用Databricks CLI来上传文件,上传会很顺利。如果有人遇到同样的问题,希望这会有所帮助。
我在使用 Data Thirst 创建的 Databricks 脚本部署任务时也遇到了类似的问题。然后切换到 Microsoft DevLabs 创建的DevOps for Azure Databricks。以下是我使用 Databricks CLI 来实现我想要在 Azure 发布管道中完成的任务的步骤:
Use Python version
任务。参考
Python 3.7
Configure Databricks CLI
。提供
workspace URL
,例如
adb-1234567890123456.12.azuredatabricks.net
,并通过引用秘密变量提供个人访问令牌
Command Line Script
任务,并添加了 Databricks CLI 脚本作为内联代码。此外,还添加了
--profile AZDO
以及脚本,因为此配置文件是在上一步中配置的。例如,
dbfs cp $(System.DefaultWorkingDirectory)/abcd dbfs:/mytempfiles --recursive --overwrite --profile AZDO
- task: DataThirstLtd.databricksDeployScripts.databricksDeployment@1
inputs:
DatabricksInstance: 'https://<region>.azuredatabricks.net'
PersonalAccessToken: '$(DatabricksToken)'
LocalPath: '$(System.DefaultWorkingDirectory)/path/to/your/library'
DbfsPath: '/dbfs/path/to/destination'
重要:
$(DatabricksToken)
应该是存储您的 Databricks 个人访问令牌的安全变量或秘密。