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

如何将AWS CDK的InstanceClass枚举映射为实际的AWS DocumentDB实例类型

问题原因

报错是因为InstanceClass.STORAGE2枚举对应的是AWS D2系列存储优化实例,这类实例不支持DocumentDB,所以部署时触发了参数无效错误。

解决方法

有两种方案可以正确配置DocumentDB支持的实例类型:

  • 方案1:使用正确的枚举映射
    DocumentDB支持的实例系列和InstanceClass枚举的对应关系如下:
    • R5 内存优化实例 → InstanceClass.MEMORY5
    • R6g Graviton2内存优化实例 → InstanceClass.MEMORY6_GRAVITON2
    • R4 内存优化实例 → InstanceClass.MEMORY4
    • T3 突发性能实例 → InstanceClass.BURSTABLE3
      如果你需要用r5.large,把对应代码替换为:
    .instanceType(InstanceType.of(InstanceClass.MEMORY5, InstanceSize.LARGE))
    
  • 方案2:直接传入实例类型字符串
    和TypeScript示例的逻辑一致,Java CDK也支持直接解析字符串格式的实例类型,不用手动匹配枚举,写法更简单不容易出错:
    .instanceType(InstanceType.parse("r5.large"))
    

修改后的完整代码示例

DatabaseCluster dbCluster = DatabaseCluster.Builder.create(scope, "ApiDocDb")
    .dbClusterName(dataProps.getTableName())
    .masterUser(Login.builder()
        .username(masterUsername)
        .password(SecretValue.plainText(masterPwd))
        .build())
    // 替换为你需要的实例类型写法即可
    .instanceType(InstanceType.parse("r5.large"))
    .vpc(Vpc.Builder.create(scope, "DocDB-VPC")
        .cidr("10.2.0.0/16")
        .build())
    .vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PUBLIC).build())
    .build();

注意:部署前请确认你使用的AWS区域支持你选择的DocumentDB实例类型,避免出现区域不兼容的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:54:00