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

如何通过Go Lambda修改Aurora MySQL Serverless 2的最小ACUS?

解决Go SDK V2修改Aurora MySQL Serverless 2最小ACUS的参数错误问题

Aurora Serverless v2的ACU配置逻辑和v1不同,核心是要使用专属的参数结构体,以下是可行的实现方案:

正确实现方式

  • 导入Go SDK V2的RDS相关包:
    import (
      "context"
      "github.com/aws/aws-sdk-go-v2/aws"
      "github.com/aws/aws-sdk-go-v2/service/rds"
      "github.com/aws/aws-sdk-go-v2/service/rds/types"
    )
    
  • 构造修改请求时,必须使用ServerlessV2ScalingConfiguration字段(而非v1的ScalingConfiguration):
    func updateServerlessMinACU(rdsClient *rds.Client, clusterID string, minACU float64) error {
      modifyInput := &rds.ModifyDBClusterInput{
        DBClusterIdentifier: aws.String(clusterID),
        ServerlessV2ScalingConfiguration: &types.ServerlessV2ScalingConfiguration{
          MinCapacity: aws.Float64(minACU),
          // 如需同步修改最大ACU,可添加MaxCapacity字段
          // MaxCapacity: aws.Float64(64.0),
        },
        ApplyImmediately: aws.Bool(true), // 设置为true立即生效
      }
    
      _, err := rdsClient.ModifyDBCluster(context.TODO(), modifyInput)
      return err
    }
    

参数错误排查要点

  • 不要混用ScalingConfiguration字段:该字段仅适用于Serverless v1集群,v2集群使用会直接触发参数错误。
  • 严格遵守MinCapacity范围:Serverless v2的最小ACU必须在0.5~128之间,且为0.5的整数倍(如0.5、1、1.5等),超出范围或非合法步长会触发校验失败。
  • 确保DBClusterIdentifier不为空:必须传入集群的正确标识符(名称或ARN)。

Lambda权限配置

Lambda执行角色需添加rds:ModifyDBCluster权限,策略示例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "rds:ModifyDBCluster",
      "Resource": "arn:aws:rds:你的区域:账号ID:cluster:目标集群标识符"
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:32:42