1

我正在尝试使用 Terraform将 Elasticache 的节点类型从老一代(cache.t2. )更改为新一代(cache.t3. )。

能够通过 成功修改所有 Memcached 实例的节点类型terraform apply,但不幸的是,当我尝试使用terraform apply命令更改 Redis 的节点类型时,该命令在大约 30 秒内完成并且没有应用任何更改。

要应用节点类型更改,我必须登录到 Web 控制台并单击单个 Redis 实例并单击修改并应用待处理的更改并等待它完成。这对我来说是手动工作,我必须为 100 个 Redis 实例执行此操作。

是否可以强制 terraform 在 Elasticache 上应用 Redis 的待定更改?

4

2 回答 2

0

您是否尝试争论https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elasticache_cluster#apply_immediately

也许另一种解决方案是使用 aws-cli--apply-immediately选项运行 bash 脚本https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html

于 2020-08-20T11:50:25.983 回答
0

对我来说,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 
于 2020-08-31T10:44:15.853 回答