如何解决强制Terraform在AWS Elasticache Redis集群上应用待定更改
我正在尝试使用Terraform将Elasticache的节点类型从较早的一代(cache.t2。)更改为较新的一代(cache.t3。)。
能够通过terraform apply
为所有Memcached实例成功修改节点类型,但是不幸的是,当我尝试使用terraform apply
更改Redis的节点类型时,该命令仅在大约30秒内完成,没有更改已应用。
要应用节点类型更改,我必须登录Web控制台并单击单个Redis实例,然后单击“修改”并应用挂起的更改,然后等待其完成。这是我的手动工作,我必须对100个Redis实例执行此操作。
是否可以强制Terraform在Elasticache上应用Redis的待处理更改?。
解决方法
也许另一种解决方案是使用aws-cli --apply-immediately
选项https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html
对我来说,Terraform的立即应用无法正常工作,因此我正在使用aws-cli
来立即应用更改。
下面的shell命令将识别所有集群上的挂起更改,并立即在每个集群实例上提交应用。
PRFIL="profile1"
RGN="eu-west-1"
for cls in `aws-okta exec $PRFIL -- aws --region $RGN elasticache describe-cache-clusters | jq '.CacheClusters | .[] | select((.PendingModifiedValues | length ) > 0 and (.CacheClusterStatus!="modifying")) | .ReplicationGroupId ' | sort | uniq `
do
echo $cls
echo "aws-okta exec $PRFIL -- aws --region $RGN elasticache modify-replication-group --replication-group-id $cls --apply-immediately" | bash -vx | jq '.ReplicationGroup.Status'
done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。