【发布时间】:2021-09-27 09:42:44
【问题描述】:
有没有办法通过 python 笔记本确定现有的 Azure Databricks Secret Scope 是否由 Key Vault 或 Databricks 支持? dbutils.secrets.listScopes() 不输出这个。假设我对范围具有管理权限。
(很遗憾,Google 没有提供帮助)
【问题讨论】:
标签: databricks azure-databricks
有没有办法通过 python 笔记本确定现有的 Azure Databricks Secret Scope 是否由 Key Vault 或 Databricks 支持? dbutils.secrets.listScopes() 不输出这个。假设我对范围具有管理权限。
(很遗憾,Google 没有提供帮助)
【问题讨论】:
标签: databricks azure-databricks
您可以通过 Secrets REST API 执行此操作 - 如果您使用 List Secret Scopes API,则 backend_type 字段显示后端 - Datbricks 或 KeyVault。在笔记本中,您可以使用以下代码进行操作:
import requests
ctx = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
host_name = ctx.tags().get("browserHostName").get()
host_token = ctx.apiToken().get()
cluster_id = ctx.tags().get("clusterId").get()
response = requests.get(
f'https://{host_name}/api/2.0/secrets/scopes/list',
headers={'Authorization': f'Bearer {host_token}'}
).json()
scopes = dict([(s['name'], s.get('backend_type', 'DATABRICKS'))
for s in response['scopes']])
backend = scopes['scope-name']
或者您可以通过 databricks-cli 执行相同的操作,使用 databricks secrets list-scopes 命令(请参阅 docs)
【讨论】:
dbutils.secrets.listScopes() 没有输出后端(更新了问题)