在 Terraform 中,数据源中可以有变量吗?

2024-04-05

我想知道在 terraform 中调用数据源时是否可以使用变量:

而不是:

data.terraform_remote_state.dev_vpc

我想要一个变量调用 dev 像:

data.terraform_remote_state.${var.stage}_vpc

我尝试使用上面的变量,但收到错误:

错误:属性名称无效

在 locals.tf 第 21 行,在 locals 中:

21:对于 data.terraform_remote_state.${var.stage}_vpc 中的 n:

点后需要属性名称。

任何帮助将不胜感激。

提前致谢。


您无法像这样模板化标识符,但还有其他一些方法可以做到这一点。

在远程状态定义中使用变量:

data "terraform_remote_state" "rs" {
  backend = "local"
  config = {
    path = local.remote_path
  }
}

这稍微简单一些,允许您根据需要使用配置文件、本地变量或变量在远程配置中进行模板化。

定义多个远程状态,并索引:

locals {
  remote_paths = { dev = "./dev/terraform.tfstate", prod = "./prod/terraform.tfstate" }
}

data "terraform_remote_state" "rs" {
  for_each = local.remote_paths
  backend = "local"
  config = {
    path = each.value
  }
}

您现在可以在以下位置参考开发和产品data.terraform_remote_state.rs["dev"] or data.terraform_remote_state.rs["prod"]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Terraform 中,数据源中可以有变量吗? 的相关文章

随机推荐