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

AWS CDK TypeScript配置RDS集群时InstanceProps类型报错如何解决

AWS CDK TypeScript RDS集群engine/engineVersion类型报错修复方案

错误根因

rds.DatabaseCluster构造函数的engine参数要求传入IClusterEngine类型的单个实例,engineVersion要求传入对应引擎的版本实例,你给两个参数都额外添加了数组包裹符[],导致类型匹配失败。

修复方法

  1. 去掉engine和engineVersion参数外层的数组包裹符[]
  2. 有两种合法配置方式,二选一即可:
    • 方式一:将版本参数直接传入auroraPostgres工厂方法的配置项中,无需单独声明engineVersion参数
    • 方式二:单独声明engine和engineVersion两个参数,都不要加数组包裹

正确代码示例

方式一(推荐写法)

import * as cdk from 'aws-cdk-lib';
import * as rds from 'aws-cdk-lib/aws-rds';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

export class RdsStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // 替换为你业务中使用的VPC实例
    const vpc = ec2.Vpc.fromLookup(this, 'ExistingVpc', { isDefault: true });

    // 你之前创建的安全组实例
    const dbClusterSecurityGroup = new ec2.SecurityGroup(this, 'DbClusterSG', {
      vpc,
      description: 'Aurora Postgres集群访问安全组'
    });

    // 集群声明完整示例
    const auroraCluster = new rds.DatabaseCluster(this, 'AuroraPostgresCluster', {
      // 去掉数组包裹,调用工厂方法传入版本配置
      engine: rds.DatabaseClusterEngine.auroraPostgres({
        version: rds.AuroraPostgresEngineVersion.VER_13_3
      }),
      vpc,
      instanceProps: {
        instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
        vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
        // 安全组要求数组类型,你之前的调整是正确的
        securityGroups: [dbClusterSecurityGroup]
      },
      // 其他业务参数按需补充
      backup: { retention: cdk.Duration.days(7) }
    });
  }
}

方式二(单独声明engineVersion)

const auroraCluster = new rds.DatabaseCluster(this, 'AuroraPostgresCluster', {
  // 去掉数组包裹
  engine: rds.DatabaseClusterEngine.auroraPostgres(),
  // 去掉数组包裹
  engineVersion: rds.AuroraPostgresEngineVersion.VER_13_3,
  // 其他参数和方式一保持一致
  vpc,
  instanceProps: {
    instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
    vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
    securityGroups: [dbClusterSecurityGroup]
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:36:04