强制terraform在aws elasticache redis集群上应用挂起的更改

2mbi3lxu  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(745)

我正在尝试使用terraform将elasticache的节点类型从老一代(cache.t2.)更改为新一代(cache.t3.)。
能够通过成功修改所有memcached示例的节点类型 terraform apply ,但不幸的是,当我尝试使用 terraform apply 命令在30秒内完成,没有任何更改。
要应用节点类型更改,我必须登录到web控制台并单击单个redis示例&单击modify并应用挂起的更改并等待它完成。这对我来说是手工操作,我必须为100个redis示例做这个。
是否可以强制terraform在elasticache上应用redis的挂起更改?。

w80xi6nr

w80xi6nr1#

你有没有试着去争论https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_cluster#apply_immediately ?
也许另一种解决方案是使用awscli运行bash脚本 --apply-immediately 期权https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html

disbfnqx

disbfnqx2#

对我来说,terraform的apply immediate不起作用,所以我使用 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

相关问题