roc*_*cky 3 amazon-web-services amazon-cloudwatch terraform
我正在尝试访问另一个新模块中的一个模块变量,以获取在该模块中创建的aws实例ID,并在模块中使用它们.云监视警报会在这些实例ID中创建警报.结构如下所示
**Amodule #here this is used for creating kafka aws instances*
main.tf
kafkainstancevariables.tf
Run Code Online (Sandbox Code Playgroud)
Bmodule #here这用于在那些kafka实例中创建警报
main.tf
cloudwatchalertsforkafkainstancesVariables.tf
Run Code Online (Sandbox Code Playgroud)
外部模块terraform mainfile,所有模块都称为main.tf variables.tf***
如何访问Bmodule中Amodule中创建的变量?
谢谢!
Rya*_*n E 15
您可以使用输出来完成此任务.在您的kafka模块中,您可以定义一个如下所示的输出:
output "instance_ids" {
value = ["${aws_instance.kafka.*.id}"]
}
Run Code Online (Sandbox Code Playgroud)
在另一个terraform文件中,假设您使用以下内容实例化模块:
module "kafka" {
source = "./modules/kafka"
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按如下方式访问该输出:
instances = ["${module.kafka.instance_ids}"]
Run Code Online (Sandbox Code Playgroud)
如果您的模块彼此隔离(即您的cloudwatch模块未实例化您的kafka模块),您可以将输出作为模块之间的变量传递:
module "kafka" {
source = "./modules/kafka"
}
module "cloudwatch" {
source = "./modules/cloudwatch"
instances = ["${module.kafka.instance_ids}"]
}
Run Code Online (Sandbox Code Playgroud)
当然,您的"cloudwatch"模块必须声明instances 变量.
有关在模块中使用输出的更多信息,请参阅https://www.terraform.io/docs/modules/usage.html#outputs.
| 归档时间: |
|
| 查看次数: |
5275 次 |
| 最近记录: |