我一直在尝试将我团队的一些工作流程从利用Databricks Labs DBX进行作业部署转换为利用 Terraform 提供程序。我注意到的一个区别是两者之间的提供者行为不匹配。DBX 将尝试根据其名称匹配作业,而 Terraform 将仅根据其 ID 匹配它们。这意味着要迁移我的作业,我必须根据 ID 手动刷新每个作业定义。
DBX 是一个无状态部署工具,它专门使用作业名称来匹配部署和配置更新,并且对其他一些属性具有相当强大的基于名称的支持,这对我们的部署环境可能很有用。可以在此处找到该列表:https ://dbx.readthedocs.io/en/latest/named_properties.html
在我们的环境中,我希望使用纯 terraform 而不是 terraform 和 DBX 来促进这个 repo 结构:
- base_repo
- scripts/tf(通过 Terraform 配置工作区)
- src/*/scala/*(代码文件)
- project_repo
- scripts/tf(仅限作业部署,替换 scripts/dbx)
- src/*/scala/* (单个作业的代码)
然而,缺乏基于名称的匹配似乎迫使我要么使用 databricks cli 获取作业、配置文件等的列表,并通过包装脚本将它们作为变量传递给project_repo terraform 脚本,要么继续使用 dbx对于那些项目。
有没有一种好方法可以单独使用 terraform 提供程序来促进我正在寻找的东西?