首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >terraform aws_elasticsearch_domain -如果zone_awareness_enabled为false -为什么要考虑而不是忽略zone_awareness_config?

terraform aws_elasticsearch_domain -如果zone_awareness_enabled为false -为什么要考虑而不是忽略zone_awareness_config?
EN

Stack Overflow用户
提问于 2019-09-15 16:56:33
回答 2查看 919关注 0票数 2

我正在使用terraform在AWS中创建一些elasticsearch集群。每个集群可以有不同数量的实例。如果有一个实例-应该有一个AZ。如果有两个实例-应该有两个AZ。如果我的terraform aws_elasticsearch_domain资源中有一个实例,我将zone_awareness_enabled设置为false。问题是zone_awareness_config并没有像我假设的那样被忽略。因此,如果我有两个zone_awareness_config -我需要将AZ添加到tf文件中。我必须管理两个文件。

这是cluster_config:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-02 20:52:00

您可以尝试创建一个dynamic block,以便仅在实例计数大于1时添加zone_awareness_config块

代码语言:javascript
复制
dynamic "zone_awareness_config" {
  for_each = var.es_instance_count > 1 ? [var.es_instance_count] : []
  content {
    availability_zone_count = var.es_instance_count
  }
}
票数 0
EN

Stack Overflow用户

发布于 2021-03-02 07:22:25

这个示例没有使用for_each循环中设置的值。它真的应该是:

代码语言:javascript
复制
content {
    availability_zone_count = zone_awareness_config.value
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57942577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档