Terraform 如何使用地形输出作为另一个地形模板的输入变量

Terraform 如何使用地形输出作为另一个地形模板的输入变量,terraform,Terraform,是否有任何方法可以将一个地形模板输出用于另一个地形模板的输入 我有一个地形模板,它创建了一个ELB,我还有另一个地形模板,它将创建一个自动缩放组,需要ELB信息作为输入变量 我知道我可以使用shell脚本来grep并输入ELB信息,但我正在寻找某种地形方式来实现这一点。您是否尝试过使用远程状态来填充第二个模板 声明如下: resource "terraform_remote_state" "your_state" { backend = "s3" config { bucket

是否有任何方法可以将一个地形模板输出用于另一个地形模板的输入

我有一个地形模板,它创建了一个ELB,我还有另一个地形模板,它将创建一个自动缩放组,需要ELB信息作为输入变量


我知道我可以使用shell脚本来
grep
并输入ELB信息,但我正在寻找某种地形方式来实现这一点。

您是否尝试过使用远程状态来填充第二个模板

声明如下:

resource "terraform_remote_state" "your_state" {
  backend = "s3"
  config {
    bucket = "${var.your_bucket}"
    region = "${var.your_region}"
    key = "${var.your_state_file}"
  }
}
your_elb = "${terraform_remote_state.your_state.output.your_output_resource}"
然后你应该能够像这样直接取出你的资源:

resource "terraform_remote_state" "your_state" {
  backend = "s3"
  config {
    bucket = "${var.your_bucket}"
    region = "${var.your_region}"
    key = "${var.your_state_file}"
  }
}
your_elb = "${terraform_remote_state.your_state.output.your_output_resource}"
如果这对您不起作用,您是否尝试过在模块中实现ELB,然后仅使用输出


是如何构造模块的一个很好的示例。

在Terraform的较新版本中,您可以像这样访问输出变量

your_elb = "${data.terraform_remote_state.your_state.your_output_resource}"

其余的都是一样的,只是你引用它的方式。

你的_elb=“${terraform\u remote\u state.your\u state.outputs.your\u output\u resource}”-outputs而不是output检查我使用的准确语法,尽管最新语法只是
你的_elb=terraform\u remote\u state.your\u state.output.your\u output\u resource