自动将 .whl 工件从 Azure DevOps 源部署到 Synapse Spark 池

Cri*_*ber 4 azure azure-devops azure-synapse

我想自动将 Azure DevOps 工件源中的工件(自定义 python 包/.whl 文件)部署到 Synapse Spark 池。

目前我必须手动:

  • 从工件源下载 .whl 文件
  • 将 .whl 文件上传到 synapse 工作区
  • 将 package/.whl 添加到 Spark 池的包中(>“从工作区包中选择”)。

到目前为止,我还没有找到任何选项可以作为 Azure DevOps 中的发布/管道的一部分或通过 AzureCLI 执行此操作,也没有找到任何相关文档。我想知道是否有人找到了有关自动化此步骤的解决方案?必须手动完成,非常麻烦。

PS:我已经在MS论坛上问过这个问题,但还没有得到官方答复。

Sne*_*oon 7

我设法通过使用devops 上的Download Packages任务和Azure CLI发布管道中的任务来更新池 Spark 包。

首先使用Download Packages任务将源下载到管道$(System.DefaultWorkingDirectory),然后使用 Azure CLI 更新 Sparkpool。

在 Azure CLI 任务中,在内联命令字段中写入以下两行。使用$(System.DefaultWorkingDirectory)作为工作目录,我也建议选中该Use global Azure CLI configuration复选框。

  • 第一个命令将 .whl 上传到工作区。这是文档

    az synapse workspace-package upload --workspace-name yourworkspace --package yourpackage.whl

  • 然后上传到spark池中。这是文档

    az synapse spark pool update --name yourpoolspark --workspace-name yourworkspace --resource-group yourresourcegroupe --package-action Add --package yourpackage.whl

这两个命令会将包添加到您的工作区,然后将其上传到 poolspark。

Azure Powershell您可以通过Windows 代理上的任务实现相同的效果。这是要探索的文档:链接

希望它能帮助你!

  • 您可以做的是通过复制任务的 yaml 代码并添加新阶段来转换构建管道中的发布管道。通过这样做,您可以将包名称作为变量进行访问。如果生成 feed 的管道是构建管道(带有 yaml 代码),您可以合并 yaml 代码并在 yaml 阶段之间共享 feed 名称 (2认同)