将库部署到 Databricks DBFS 403 禁止错误的 Azure DevOps CD 管道

问题描述 投票:0回答:4

我正在遵循教程 使用 Azure DevOps 在 Azure Databricks 上持续集成和交付,以自动化在 Azure Databricks 群集上部署和安装库的过程。但是,我被困在“将库部署到 DBFS”步骤中,使用 Data Thirst 的 Databricks 脚本部署任务扩展中的任务 Databricks 文件到 DBFS

它不断地给我这个错误:

##[error]The remote server returned an error: (403) Forbidden.

该任务的配置如下所示: configuration of Databricks files to DBFS

我检查了我的令牌,当我尝试通过 Databricks CLI 手动上传库时,它工作正常。因此,问题不应该是由于令牌的许可造成的。

任何人都可以建议任何解决方案吗?或者是否有其他方法可以通过 Azure DevOps 上的发布 CD 管道将库部署到 Azure Databricks 上的集群?

azure azure-devops azure-pipelines azure-databricks
4个回答
1
投票

您是否在 Databricks 中检查了您的 Azure 区域?如果您在 Azure Devops 中不使用相同的 Azure 区域,您将收到 403 错误。


0
投票

经过多次尝试,发现如果不使用扩展,直接在管道中使用Databricks CLI来上传文件,上传会很顺利。如果有人遇到同样的问题,希望这会有所帮助。


0
投票

我在使用 Data Thirst 创建的 Databricks 脚本部署任务时也遇到了类似的问题。然后切换到 Microsoft DevLabs 创建的DevOps for Azure Databricks。以下是我使用 Databricks CLI 来实现我想要在 Azure 发布管道中完成的任务的步骤:

    首先,添加了
  1. Use Python version
    任务。参考
    Python 3.7
    
    
  2. 然后,添加
  3. Configure Databricks CLI
    。提供 
    workspace URL
    ,例如
    adb-1234567890123456.12.azuredatabricks.net
    ,并通过引用
    秘密变量提供个人访问令牌
  4. 添加了
  5. Command Line Script
     任务,并添加了 Databricks CLI 脚本作为内联代码。此外,还添加了 
    --profile AZDO
     以及脚本,因为此配置文件是在上一步中配置的。例如,
    dbfs cp $(System.DefaultWorkingDirectory)/abcd dbfs:/mytempfiles --recursive --overwrite --profile AZDO
    
    

0
投票
我认为,要解决通过 Azure DevOps 将库部署到 Azure Databricks 上的 DBFS 时遇到的 403 Forbidden 错误,您必须确保 Data Thirst 在 Databricks 脚本部署任务中的设置正确配置了正确的 Databricks 工作区URL 和个人访问令牌 (PAT)。一个常见的疏忽是这些配置中的不匹配或拼写错误。例如,确保 Databricks 工作区 URL 格式正确(例如 https://.azuredatabricks.net),并且在任务设置中准确输入 PAT。以下是如何在 YAML 中为 Azure DevOps 管道配置任务的说明性示例,强调安全存储和引用 PAT 的需要:

- 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 个人访问令牌的安全变量或秘密。

© www.soinside.com 2019 - 2024. All rights reserved.