gpt4 book ai didi

terraform - 如何在 Terraform 中获取 EMR 主实例的实例 ID?

转载 作者:行者123 更新时间:2023-12-04 14:22:50 25 4
gpt4 key购买 nike

以下代码为我提供了属于我的集群的所有 EC2 实例的列表:

data "aws_instances" "emrMaster" {
instance_tags {
Name = "emr-cluster-name"
}
}

但是,当我尝试使用 AWS 为主实例生成的标签缩小列表范围时,我得到了相同的列表。
data "aws_instances" "emrMaster" {
instance_tags {
Name = "emr-cluster-name"
"aws:elasticmapreduce:instance-group-role" = "MASTER"
}
}

如果我删除键名上的引号,由于键名中的冒号,我会收到非法字符错误。
data "aws_instances" "emrMaster" {
instance_tags {
Name = "emr-cluster-name"
aws:elasticmapreduce:instance-group-role = "MASTER"
}
}

有没有更好的方法来做到这一点,是我做错了什么,还是我在 Terraform 中发现了一个错误?

我正在使用 Terraform v0.11.7

我希望捕获此值,以便我可以为与核心实例不同的主实例构建特定的 cloudwatch 警报。

最佳答案

为此,最好使用 aws_instance(而不是 aws_instances)

resource "aws_emr_cluster" "emr-cluster" {
....
}

data "aws_instance" "master" {

filter {
name = "tag:Name"
values = ["${aws_emr_cluster.emr-cluster.name}"]
}

filter {
name = "tag:aws:elasticmapreduce:instance-group-role"
values = ["MASTER"]
}
}

然后只需使用输出:
output "master_id" {
value = "${data.aws_instance.master.id}"
}

关于terraform - 如何在 Terraform 中获取 EMR 主实例的实例 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com