terraform aws_elasticsearch_domain - 如果 zone_awareness_enabled 为假 - 为什么要考虑 zone_awareness_config 而不是忽略?
terraform aws_elasticsearch_domain - if zone_awareness_enabled is false - why is zone_awareness_config taken into account and not ignored?
我正在使用 terraform 在 AWS 中创建许多 elasticsearch 集群。每个集群可以有不同数量的实例。如果有一个实例 - 应该有一个可用区。如果有两个实例 - 应该有两个可用区。如果我的 terraform aws_elasticsearch_domain 资源中有一个实例,我将 zone_awareness_enabled 设置为 false。问题是 zone_awareness_config 没有像我假设的那样被忽略。因此,如果我有两个 AZ,我需要将 zone_awareness_config 添加到 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?
您可以尝试制作 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
}
}
此示例未使用 for_each 循环中设置的值。确实应该是:
content {
availability_zone_count = zone_awareness_config.value
}
我正在使用 terraform 在 AWS 中创建许多 elasticsearch 集群。每个集群可以有不同数量的实例。如果有一个实例 - 应该有一个可用区。如果有两个实例 - 应该有两个可用区。如果我的 terraform aws_elasticsearch_domain 资源中有一个实例,我将 zone_awareness_enabled 设置为 false。问题是 zone_awareness_config 没有像我假设的那样被忽略。因此,如果我有两个 AZ,我需要将 zone_awareness_config 添加到 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?
您可以尝试制作 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
}
}
此示例未使用 for_each 循环中设置的值。确实应该是:
content {
availability_zone_count = zone_awareness_config.value
}