从第一个地形输出并在第二个地形中使用



为了不同的目的,我需要两个不同的Terraform文件。在第二个Terraform文件中,我必须从第一个Terraform的输出中获取输入。

在我的场景中,我的第一个Terraform创建了一个AWS安全组。现在我必须在我的第二个Terraform文件中使用这个安全组的ID。

我还想确保第二个人族的创建不能在第一个人族完成之前启动。我怎样才能做到这一点?

创建多少.tf文件并不重要。Terraform首先加载所有.tf文件,然后尝试创建一个图来创建资源。所以你可以这样做。

resource "aws_security_group" "default" {
name        = "allow_all"
description = "Allow all inbound traffic"
.
.
}

现在,您可以在另一个文件/其他模块中使用此安全组的id。例如,让我们使用它来创建ec2。喜欢

resource "aws_instance" "web" {
ami = "${var.ami_id}"
instance_type = "t2.micro"
security_groups = ["${aws_security_group.default.id}"]
}

有关安全组参数的更多详细信息,您可以查看以下文档。https://www.terraform.io/docs/providers/aws/r/security_group.html

对于此需求,您可能希望使用地形模块,通过这些模块,您可以享受代码重用的奢侈,并且可以将安全组的ID提供给任意多的地形文件。无论何时应用terraform,它都会检查资源依赖性,并相应地执行。

相关内容

  • 没有找到相关文章

最新更新