You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中调整AWS DynamoDB Auto Scaling读容量预置范围为1-10?

问题分析

你遇到的读容量预置范围显示为5-10的原因是:模块内的aws_appautoscaling_target.table_read资源,其min_capacity绑定的是你传入的read_capacity变量值(5),而非autoscaling_read配置块里的min_capacity(1)。

解决方案

有两种可行的修改方式,根据你的业务需求选择:

方式一:直接调整主配置的初始读容量(无需修改模块代码)

将主模块中的read_capacity从5改为1,这样自动扩缩容的最小容量会同步变为1,同时初始读容量也会设置为1。修改后的代码如下:

module "dynamodb_table" {
  source   = "terraform-aws-modules/dynamodb-table/aws"
  version  = "3.1.1"

  name                = var.dbname
  hash_key            = var.hash_key
  billing_mode        = "PROVISIONED"
  read_capacity       = 1  # 修改此处为1
  write_capacity      = 1
  autoscaling_enabled = true

  autoscaling_read = {
    scale_in_cooldown  = 50
    scale_out_cooldown = 40
    target_value       = 70
    min_capacity       = 1
    max_capacity       = 10
  }

  autoscaling_write = {
    scale_in_cooldown  = 50
    scale_out_cooldown = 40
    target_value       = 70
    min_capacity       = 1
    max_capacity       = 10
  }

  attributes = [
    {
      name = "user_id"
      type = "S"
    }
  ]

  tags = {
    Terraform   = "true"
    Environment = var.environment
  }
}

方式二:修改模块内的扩缩容目标配置(保留初始读容量5)

如果需要保留初始读容量为5,同时让自动扩缩容范围是1-10,需要修改模块内的aws_appautoscaling_target.table_read资源,将min_capacity改为从autoscaling_read配置块取值:

resource "aws_appautoscaling_target" "table_read" {
  count = var.create_table && var.autoscaling_enabled && length(var.autoscaling_read) > 0 ? 1 : 0

  max_capacity       = var.autoscaling_read["max_capacity"]
  min_capacity       = var.autoscaling_read["min_capacity"]  # 修改此处为从autoscaling_read取值
  resource_id        = "table/${aws_dynamodb_table.autoscaled[0].name}"
  scalable_dimension = "dynamodb:table:ReadCapacityUnits"
  service_namespace  = "dynamodb"
}

注意:这种方式需要你自定义模块(比如fork原模块后修改),无法直接使用官方模块的3.1.1版本。

内容的提问来源于stack exchange,提问作者user20208419

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:55:19