Terraform配置ADF链接SQL数据库时租户ID空值致连接失败
问题:Terraform创建ADF Azure SQL链接服务时认证失败,空tenant字段引发冲突
Terraform版本
1.2.3
AzureRM Provider版本
v3.13.0
受影响资源/数据源
- Azure Data Factory(ADF)
- SQL数据库
Terraform配置文件
resource "azurerm_data_factory_linked_service_azure_sql_database" "sqldatabase_linked_service_10102022" { count = (var.subResourcesInfo.sqlDatabaseName != "") ? 1 : 0 depends_on = [azurerm_data_factory_integration_runtime_azure.autoresolve_integration_runtime, azurerm_data_factory_managed_private_endpoint.sqlserver_managed_endpoint] name = "AzureSqlDatabase10102022" data_factory_id = azurerm_data_factory.datafactory.id integration_runtime_name = "AutoResolveIntegrationRuntime" use_managed_identity = true connection_string = format("Integrated Security=False;Data Source=%s.database.windows.net;Initial Catalog=%s;", var.subResourcesInfo.sqlServerName, var.subResourcesInfo.sqlDatabaseName) }
问题详情
配置的ADF链接服务连接数据库时失败,报错内容如下:
Operation on target DWH_DF_aaa failed: {'StatusCode':'DFExecutorUserError','Message':'Job failed due to reason: com.microsoft.dataflow.broker.InvalidOperationException: Only one valid authentication should be used for AzureSqlDatabase. ServicePrincipalAuthentication is invalid. One or two of servicePrincipalId/key/tenant is missing.','Details':''}
排查后发现:通过Terraform创建的链接服务对应的JSON文件中存在tenant=""的空值字段;而在ADF UI中直接创建的相同配置的链接服务,其JSON里无该字段,且可正常连接数据库。
期望结果
当Terraform代码未指定tenant_id参数时,生成的链接服务JSON不应包含空值的tenant字段,确保ADF与数据库正常连通。
内容的提问来源于stack exchange,提问作者Jaydeep Soni
相关产品推荐
相关产品推荐

