如何用Terraform创建引用Azure密钥保管库的Databricks SQL Server连接
解决Terraform配置Databricks Lakehouse Federation SQL Server连接并引用Secret Scope密钥的问题
方法1:使用databricks_sql_resource执行原生SQL语句
由于Lakehouse Federation处于Public Preview阶段,databricks_connection资源暂未完全适配Secret Scope的引用语法,最稳妥的方式是直接用databricks_sql_resource执行你原本的SQL脚本,完全复现预期效果:
resource "databricks_sql_resource" "sqlserver_connection" { sql = <<-SQL CREATE CONNECTION sqlserver_connection TYPE sqlserver OPTIONS ( host 'test.database.windows.net', port '1433', user secret('<secret-scope>','<secret-key-user>'), password secret('<secret-scope>','<secret-key-password>') ) SQL }
该资源会直接在Databricks中运行指定SQL,和手动执行脚本的效果完全一致,完美支持Secret Scope的引用语法。
方法2:适配databricks_connection资源(API兼容场景)
如果偏好使用databricks_connection资源,可以直接将options中的user和password设置为Secret Scope的引用字符串,Databricks API会自动解析该格式:
resource "databricks_connection" "sqlserver" { name = "sqlserver_connection" connection_type = "SQLSERVER" options = { host = "test.database.windows.net" port = "1433" user = "secret('<secret-scope>','<secret-key-user>')" password = "secret('<secret-scope>','<secret-key-password>')" } }
注意:因功能处于预览阶段,databricks_connection的参数可能存在变动,优先推荐方法1保障兼容性。
额外注意事项
- 确保Databricks Workspace已配置Azure Key Vault托管的Secret Scope,且Terraform使用的身份具备该Secret Scope的访问权限。
- 若遇权限问题,需检查Databricks权限配置,确保执行SQL或创建连接的身份拥有对应操作权限。
内容的提问来源于stack exchange,提问作者Piotr Michalak
相关产品推荐
相关产品推荐

