我正在使用terraform在AWS中创建一些elasticsearch集群。每个集群可以有不同数量的实例。如果有一个实例-应该有一个AZ。如果有两个实例-应该有两个AZ。如果我的terraform aws_elasticsearch_domain资源中有一个实例,我将zone_awareness_enabled设置为false。问题是zone_awareness_config并没有像我假设的那样被忽略。因此,如果我有两个zone_awareness_config -我需要将AZ添加到tf文件中。我必须管理两个文件。
这是cluster_config:
cluster_config {
instance_type = "c5.large.elasticsearch"
instance_count = var.es_instance_count
dedicated_master_enabled = var.dedicated_master_enabled
dedicated_master_count = var.es_instance_count
zone_awareness_enabled = var.es_instance_count > 1 ? true : false
zone_awareness_config {
availability_zone_count = var.es_instance_count
}
}cluster_config应适用于2个或3个实例,但也适用于1个AZ中的1个实例。但是没有。如果我有1个AZ -我必须从文件中删除zone_awareness_config。如果我有1个AZ,我如何忽略zone_awareness_config?
发布于 2019-10-02 20:52:00
您可以尝试创建一个dynamic block,以便仅在实例计数大于1时添加zone_awareness_config块
dynamic "zone_awareness_config" {
for_each = var.es_instance_count > 1 ? [var.es_instance_count] : []
content {
availability_zone_count = var.es_instance_count
}
}发布于 2021-03-02 07:22:25
这个示例没有使用for_each循环中设置的值。它真的应该是:
content {
availability_zone_count = zone_awareness_config.value
}https://stackoverflow.com/questions/57942577
复制相似问题