Azure Databricks - 需要在 CI/CD 过程中替换 Notebook 中的机密

问题描述

我需要从 Databricks Notebook 中基于密钥保管库的机密范围获取机密。我有开发和生产 Azure 资源的机密,例如Data Lake Gen2 的开发和生产实例。现在,我有一个 CI/CD 管道,可以按原样部署 Notebook,从 dev 到生产 databricks 文件夹。

但是,我不知道如何在部署时替换 Notebook 中的机密名称,以便 dev 中的 databricks Notebook 指向开发资源,而生产中的机密指向生产资源。为了实现这一点,我需要覆盖 CI/CD 管道或其他一些设计中的秘密名称来实现这一点。

需要相同的解决方案。感谢任何潜在客户。

提前致谢

解决方法

通常的方法是将秘密作用域名称作为笔记本的参数传递。为此,您需要创建一个 text widget 用于传递秘密作用域名称,并将 dev 或 prod 作用域名称作为 parameter for a job 传递。它看起来像这样(在 Python 中):

# cell 1
dbutils.widgets.text("secret_scope","","Secret Scope")
# cell 2
secret_scope = dbutils.widgets.get("secret_scope")
# cell 3
my_secret = dbutils.secrets.get(secret_scope,"mySecret")