【问题标题】:Creating custom parameter group in AWS Elasticache based on default groups基于默认组在 AWS Elasticache 中创建自定义参数组
【发布时间】:2022-02-04 19:13:10
【问题描述】:

我正在尝试在 AWS Elasticache 中创建自定义参数组。

我想使用一个默认参数组作为基础(名为 default.redis5.0.cluster.on 的组,因为我需要其他所有东西,但我只想更改一个属性),请参阅@987654321 @ 了解有关默认参数组的更多详细信息

我的基本假设是我需要将默认参数组值复制到 Terraform 资源,然后只修改我需要更改的唯一参数。但是,这会产生大量参数,并且看起来不是最简单的方法。

如果我需要在 default.redis5.0.cluster.on 参数组中复制参数,那么我需要在 Terraform 中有这些参数。有没有办法将默认资源组导入为 Terraform 配置?

  • 是的,您复制默认值并进行修改。
  • 嗨@Marcin,感谢您的评论!如何复制到 Terraform?
  • 如果您根据 Marcin 的链接创建参数组,并选择 redis5.0 作为“家庭”,您将使用所有默认参数创建新组。因此,在声明此 terraform 资源时,您只能修改那些要设置为不同于默认值的参数。

标签: amazon-web-services terraform terraform-provider-aws aws-elasticache


【解决方案1】:

可以使用family = redis5.0 创建参数组,该参数组具有与默认参数组default.redis5.0.cluster.on 几乎相同的参数。

我最终对两个参数组中的属性进行了 JSON diff:default.redis5.0default.redis5.0.cluster.on,并且只有一个参数差异。 首先,以 JSON 格式获取参数组:

aws elasticache describe-cache-parameters --cache-parameter-group-name default.redis5.0.cluster.on > default.redis5.0.cluster.on.json
aws elasticache describe-cache-parameters --cache-parameter-group-name default.redis5.0 > default.redis5.0.json

然后对这两个文件做一个 JSON diff 来获取不同的参数。只有一个,cluster-enabled,所以在那之后,用这种方式创建一个与default.redis5.0.cluster.on 具有相同参数值的自定义资源组是微不足道的:

resource "aws_elasticache_parameter_group" "aws_elasticache_parameter_group" {
  name        = "cache-params"
  family      = "redis5.0"
  description = "The parameter group has same values as default parameter group default.redis5.0.cluster.on"

  parameter {
    name  = "cluster-enabled"
    value = "yes"
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多