amazon-web-services - 从第一个 Terraform 获取输出并在第二个 Terraform 中使用
问题描述
我需要两个不同的 Terraform 文件用于不同的目的。在第二个 Terraform 文件中,我必须从 First Terraform 文件的输出中获取输入。
在我的场景中,我的第一个 Terraform 创建了一个 AWS 安全组。现在我必须在我的 Second Terraform 文件中使用这个安全组的 ID。
我还想确保在 First Terraform 完成之前不能初始化 Second Terraform 创建。我怎样才能做到这一点?
解决方案
创建多少 .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
推荐阅读
- node.js - 尝试使用 node.js 实时服务器时出错
- google-apps-script - Google App Script如何在发送自动电子邮件时添加特定的抄送电子邮件
- php - 使用 mysqli_fetch_array 和 mysqli_fetch_field 从数据库中获取数据
- c# - 如何阻止 .NET Core 破坏文件 URI
- hibernate - 未配置此类过滤器 [shoesFilter]
- django - 如何在 Celery 任务的最后重试时执行一些代码
- javascript - 如何将 bin/www 文件更改为 app.js 文件?
- apache-kafka - Debezium很慢,如何改进?
- google-drive-api - 获取 Google 团队云端硬盘中的元素数量
- database - 如何为储藏室创建数据库