【问题标题】:Force Terraform to apply pending changes on AWS Elasticache Redis cluster强制 Terraform 在 AWS Elasticache Redis 集群上应用挂起的更改
【发布时间】:2020-12-09 16:47:32
【问题描述】:

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

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

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

是否可以强制 terraform 为 Elasticache 上的 Redis 应用待处理的更改?

【问题讨论】:

    标签: amazon-web-services redis terraform amazon-elasticache terragrunt


    【解决方案1】:

    【讨论】:

    • 由于 terraform apply_immediately 无法正常工作,但以下 aws-cli 命令运行良好:aws-okta exec development -- aws --region us-west-2 elasticache modify-replication-group --replication-group-id "redis-clustername1" --apply-immediately
    • 截至 10 月 27 日仍未工作。虽然我注意到如果您在维护期内使用“立即应用”对更改进行 terraform 应用,那么它会对其进行修改
    【解决方案2】:

    对我来说,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 
    

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 2021-02-05
      • 2020-03-30
      • 2019-09-12
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多