基于默认组在 AWS Elasticache 中创建自定义参数组

Lau*_*nzo 1 amazon-web-services amazon-elasticache terraform terraform-provider-aws

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

我想使用默认参数组作为基础(名为 default.redis5.0.cluster.on 的组,因为这里有我需要的其他所有内容,但只有一个我想更改的属性),请参阅https:// docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.Redis.html有关默认参数组的更多详细信息

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

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

Lau*_*nzo 5

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

我最终对两个参数组中的属性进行了 JSON diff:default.redis5.0并且default.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
Run Code Online (Sandbox Code Playgroud)

然后对两个文件进行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"
  }
}
Run Code Online (Sandbox Code Playgroud)