diff --git a/.changelog/3160.txt b/.changelog/3160.txt new file mode 100644 index 0000000000..cf8d5692a5 --- /dev/null +++ b/.changelog/3160.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_redis_instance: Optimize the change issue of the `replica_zone_ids` field in a single availability zone. +``` \ No newline at end of file diff --git a/tencentcloud/services/crs/resource_tc_redis_instance.go b/tencentcloud/services/crs/resource_tc_redis_instance.go index 42772c0866..13468b94f3 100644 --- a/tencentcloud/services/crs/resource_tc_redis_instance.go +++ b/tencentcloud/services/crs/resource_tc_redis_instance.go @@ -641,7 +641,7 @@ func resourceTencentCloudRedisInstanceRead(d *schema.ResourceData, meta interfac } } - if info.NodeSet != nil { + if info.NodeSet != nil && len(info.NodeSet) > 0 { var zoneIds []int var nodeInfos []interface{} for i := range info.NodeSet { @@ -670,6 +670,20 @@ func resourceTencentCloudRedisInstanceRead(d *schema.ResourceData, meta interfac if !zoneIdsEqual { _ = d.Set("replica_zone_ids", zoneIds) } + + if replicaZonesOk && zoneIdsEqual { + zoneIds := helper.InterfacesIntegers(replicaZones.([]interface{})) + zoneIsSet := true + for _, v := range zoneIds { + if v != int(*info.ZoneId) { + zoneIsSet = false + break + } + } + if zoneIsSet { + _ = d.Set("replica_zone_ids", replicaZones) + } + } } //internal version: replace resourceTag begin, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation. tcClient := meta.(tccommon.ProviderMeta).GetAPIV3Conn()