Regex 在TerraForm资源中使用正则表达式

Regex 在TerraForm资源中使用正则表达式,regex,terraform0.12+,Regex,Terraform0.12+,我正在使用TerraForm提供一个Grafana环境。设置基本完成,但我正在努力完成最后一部分。以下是相关的代码: resource "grafana_folder" "folder" { for_each = toset(var.grafana_folders) title = each.key } resource "grafana_dashboard" "dashboards" { for_each

我正在使用TerraForm提供一个Grafana环境。设置基本完成,但我正在努力完成最后一部分。以下是相关的代码:

resource "grafana_folder" "folder" {
 for_each = toset(var.grafana_folders)
 title = each.key
}

resource "grafana_dashboard" "dashboards" {
  for_each    = fileset(path.module, "../dashboards/*.json")
  config_json = file("${path.module}/${each.key}")
  folder = grafana_folder.folder[regex("/^[^_]*_([^_]*)_/", "${each.key}")[0]].id
}
我创建了一组文件夹(基于变量列表)。然后,我根据文件夹中的文件创建一组仪表板。这些文件有一个名称前缀,标识它们应该放在哪个文件夹中


例如:db_Folder1_34ne34A我不知道terraform,但有一个函数可以接受正则表达式。也许您可以使用
^db([^\u]+)\ us*
并使用
$1
替换为组1。从我读到的内容来看,如果您有一个未命名的捕获组,您将获得捕获子字符串的列表。有一些关于如何从列表中获取单个元素的信息。
  folder = grafana_folder.folder["Folder1"].id
folder = try(grafana_folder.folder[regex("Folder1|Folder2", "${each.key}")].id, 0)