通过PowerShell创建Azure Databricks链接服务时dataSecurityMode未生效
Azure Databricks链接服务中
dataSecurityMode配置不显示的解决方法 问题场景
我通过以下PowerShell命令创建Azure Databricks链接服务:
Set-AzDataFactoryV2LinkedService -Force -ResourceGroupName MYDEVRESOURCEGROUP -DataFactoryName MYDEVADF -Name LS_ADB_JOB_01 -DefinitionFile ./LS_ADB_JOB_01.json
配置文件LS_ADB_JOB_01.json中包含集群相关配置片段:
... "newClusterSparkEnvVars": { "PYSPARK_PYTHON": "/databricks/python3/bin/python3" }, "newClusterVersion": "@linkedService().ClusterVersion", "newClusterDriverNodeType": "@linkedService().DriverNodeType", "clusterOption": "Autoscaling", "newClusterInitScripts": [ "/Workspace/Ingestion/init_odbc_driver.sh" ], "dataSecurityMode": "SINGLE_USER" ...
命令执行成功,但dataSecurityMode: "SINGLE_USER"配置未在Azure Data Factory(ADF)界面中显示,需解决该问题。
解决步骤
1. 检查Azure PowerShell模块版本兼容性
dataSecurityMode是较新的配置字段,需确保你使用的Az.DataFactory模块版本支持该参数:
- 查看当前模块版本:
Get-Module -ListAvailable Az.DataFactory - 若版本过低,更新模块:
Update-Module -Name Az.DataFactory -Force
2. 验证JSON配置的层级正确性
dataSecurityMode必须位于typeProperties下的newCluster节点内,否则ADF会忽略该字段。完整的正确结构示例:
"typeProperties": { "domain": "xxx.databricks.azure.cn", "accessToken": { "type": "SecureString", "value": "xxx" }, "newCluster": { "newClusterSparkEnvVars": { "PYSPARK_PYTHON": "/databricks/python3/bin/python3" }, "newClusterVersion": "@linkedService().ClusterVersion", "newClusterDriverNodeType": "@linkedService().DriverNodeType", "clusterOption": "Autoscaling", "newClusterInitScripts": [ "/Workspace/Ingestion/init_odbc_driver.sh" ], "dataSecurityMode": "SINGLE_USER" } }
检查你的JSON文件,确保字段层级无误。
3. 确认配置是否实际生效
部分配置项可能不在ADF可视化界面显示,但实际已生效。可以通过PowerShell命令验证:
Get-AzDataFactoryV2LinkedService -ResourceGroupName MYDEVRESOURCEGROUP -DataFactoryName MYDEVADF -Name LS_ADB_JOB_01 | ConvertTo-Json -Depth 10
如果返回的JSON中包含dataSecurityMode字段,说明配置已生效,只是界面未展示;若不存在,需修正配置后重新部署。
4. 重新部署链接服务
若上述步骤确认配置正确但界面仍未显示,尝试删除现有服务后重新部署:
Remove-AzDataFactoryV2LinkedService -ResourceGroupName MYDEVRESOURCEGROUP -DataFactoryName MYDEVADF -Name LS_ADB_JOB_01 -Force Set-AzDataFactoryV2LinkedService -ResourceGroupName MYDEVRESOURCEGROUP -DataFactoryName MYDEVADF -Name LS_ADB_JOB_01 -DefinitionFile ./LS_ADB_JOB_01.json
内容的提问来源于stack exchange,提问作者Surat Suntong
相关产品推荐
相关产品推荐

