如何通过CDK更新ElastiCache(Redis)集群参数组并关联参数组
使用AWS CDK关联Redis复制组与参数组并设置
timeout参数 1. 创建自定义参数组
先定义CfnParameterGroup实例,指定对应Redis引擎版本家族和timeout参数值(单位为秒,设置非0数值即可触发空闲连接关闭,示例设为5分钟):
const redisParamGroup = new elasticache.CfnParameterGroup(this, 'RedisIdleTimeoutParamGroup', { cacheParameterGroupFamily: 'redis7.x', // 替换为你的Redis引擎对应家族 description: 'Parameter group to configure idle connection timeout', properties: { 'timeout': '300' } });
2. 关联到复制组
在CfnReplicationGroup的配置中,通过cache_parameter_group_name属性关联上述自定义参数组:
const replicationGroup = new elasticache.CfnReplicationGroup(this, 'MyRedisCluster', { replicationGroupId: 'prod-redis-cluster', cacheNodeType: 'cache.t3.small', engine: 'redis', engineVersion: '7.0', // 必须和参数组的family版本匹配 numNodeGroups: 1, replicasPerNodeGroup: 1, // 绑定自定义参数组 cacheParameterGroupName: redisParamGroup.ref });
3. 已存在复制组的参数更新流程
如果你的Redis复制组已经部署完成,需要更新参数:
- 直接修改现有
CfnParameterGroup的properties值,CDK部署时会自动更新参数组,timeout属于动态参数,无需重启节点即可生效 - 若要切换到全新参数组,修改
CfnReplicationGroup的cacheParameterGroupName为新参数组的ref,部署后集群会自动完成参数组切换
注意事项
cacheParameterGroupFamily必须和复制组的engineVersion严格匹配,否则会触发部署报错- 不同Redis版本的
timeout参数有效值范围可能有差异,需参照对应版本的官方文档调整 - 静态参数修改后需要触发节点重启,可通过
applyImmediately属性控制生效时机
内容的提问来源于stack exchange,提问作者Vinod Jayachandran
相关产品推荐
相关产品推荐

