在 terraform 的另一个模块中使用一个模块局部变量
Using one module local variable in another module in terraform
我正在尝试访问另一个新模块中的一个模块变量,以获取在该模块中创建的 aws 实例 ID,并在云监视警报模块中使用它们,后者在这些实例 ID 中创建警报。结构如下
**Amodule #here this is used for creating kafka aws instances*
main.tf
kafkainstancevariables.tf
Bmodule #这里用于在那些kafka实例中创建警报
main.tf
cloudwatchalertsforkafkainstancesVariables.tf
调用所有模块的外部模块 terraform 主文件
main.tf
variables.tf***
如何在Bmodule中访问Amodule中创建的变量?
谢谢!
您可以使用 outputs 来完成此操作。在您的 kafka 模块中,您可以定义如下所示的输出:
output "instance_ids" {
value = ["${aws_instance.kafka.*.id}"]
}
在另一个 terraform 文件中,假设您使用如下内容实例化了模块:
module "kafka" {
source = "./modules/kafka"
}
然后您可以按如下方式访问该输出:
instances = ["${module.kafka.instance_ids}"]
如果您的模块彼此隔离(即您的 cloudwatch 模块不实例化您的 kafka 模块),您可以将输出作为变量在模块之间传递:
module "kafka" {
source = "./modules/kafka"
}
module "cloudwatch" {
source = "./modules/cloudwatch"
instances = ["${module.kafka.instance_ids}"]
}
当然,您的 "cloudwatch" 模块必须声明 instances
variable.
有关在模块中使用输出的详细信息,请参阅 https://www.terraform.io/docs/modules/usage.html#outputs。
我正在尝试访问另一个新模块中的一个模块变量,以获取在该模块中创建的 aws 实例 ID,并在云监视警报模块中使用它们,后者在这些实例 ID 中创建警报。结构如下
**Amodule #here this is used for creating kafka aws instances*
main.tf
kafkainstancevariables.tf
Bmodule #这里用于在那些kafka实例中创建警报
main.tf
cloudwatchalertsforkafkainstancesVariables.tf
调用所有模块的外部模块 terraform 主文件 main.tf variables.tf***
如何在Bmodule中访问Amodule中创建的变量?
谢谢!
您可以使用 outputs 来完成此操作。在您的 kafka 模块中,您可以定义如下所示的输出:
output "instance_ids" {
value = ["${aws_instance.kafka.*.id}"]
}
在另一个 terraform 文件中,假设您使用如下内容实例化了模块:
module "kafka" {
source = "./modules/kafka"
}
然后您可以按如下方式访问该输出:
instances = ["${module.kafka.instance_ids}"]
如果您的模块彼此隔离(即您的 cloudwatch 模块不实例化您的 kafka 模块),您可以将输出作为变量在模块之间传递:
module "kafka" {
source = "./modules/kafka"
}
module "cloudwatch" {
source = "./modules/cloudwatch"
instances = ["${module.kafka.instance_ids}"]
}
当然,您的 "cloudwatch" 模块必须声明 instances
variable.
有关在模块中使用输出的详细信息,请参阅 https://www.terraform.io/docs/modules/usage.html#outputs。