我想创建一个 databricks 作业,其中所有者设置为服务主体。主要原因是,如果员工离开公司,没有什么可以改变的,也不会因为 PAT 失败或类似情况而导致工作中断。 问题是这样做时,作业总是无法访问设置为 azure devops 远程存储库的代码。问题和错误消息表明服务主体无法克隆 git 存储库。
我怎样才能做到这一点?
我的理解是,我可以使用 databricks 中的 git-credentials api 让服务主体使用我的 PAT token 之一来访问 git。不适合我。 https://docs.databricks.com/dev-tools/api/latest/gitcredentials.html#operation/create-git-credential
我知道一个解决方法,那就是构建轮子并发布它,这样“检查代码”就不是通过工作完成的,而是通过 CI/CD 提前完成。但由于远程存储库非常简单易用,我们也希望将该功能与服务主体一起使用。
有人使用过它并使它起作用吗?也许还可以选择允许服务主体访问 azure devops 本身,但我被告知这还不可能。
最佳答案
您的做法是正确的,可能只是错过了一些步骤。工作流程如下:
- 生成 ADO PAT 以访问您的存储库
- 为服务主体生成AAD token - 您可以引用Azure Databricks documentation了解详情。
- 使用生成的 AAD token 通过 Git Credentials API 设置 ADO PAT .
关于azure - databricks 在工作流/作业中使用服务主体 + 远程存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75825072/