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

如何从aws_cdk.aws_rds导入ClusterInstance?模块无该属性

AttributeError: module 'aws_cdk.aws_rds' has no attribute 'ClusterInstance' in AWS CDK v2 Python

在AWS CDK v2的Python SDK中,ClusterInstance类已被重构拆分,不再作为aws_rds模块的直接属性对外暴露,这就是报错的核心原因——官方文档的更新可能滞后于SDK的实际变更。

解决方案

将代码中调用ClusterInstance的静态方法替换为对应的独立类:

  • 把rds.ClusterInstance.provisioned()替换为rds.ProvisionedClusterInstance()
  • 把rds.ClusterInstance.serverless_v2()替换为rds.ServerlessV2ClusterInstance()

修改后的完整代码

from aws_cdk import (
    Stack,
    aws_rds as rds,
    aws_ec2 as ec2,
)
from constructs import Construct

from cdk_utils.get_param import get_param

class AuroraDbStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        vpc = ec2.Vpc(
            self,
            "Aurora TEMP VPC",
            max_azs=2,
            subnet_configuration=[
                ec2.SubnetConfiguration(
                    subnet_type=ec2.SubnetType.PRIVATE_ISOLATED,
                    name="Aurora TEMP Private Subnet",
                ),
            ],
        )

        cluster = rds.DatabaseCluster(self, "Database",
            engine=rds.DatabaseClusterEngine.aurora_mysql(
                version=rds.AuroraMysqlEngineVersion.VER_3_01_0
            ),
            writer=rds.ProvisionedClusterInstance("writer",
                publicly_accessible=False
            ),
            readers=[
                rds.ServerlessV2ClusterInstance("reader2")
            ],
            vpc_subnets=ec2.SubnetSelection(
                subnet_type=ec2.SubnetType.PRIVATE_ISOLATED
            ),
            vpc=vpc
        )

补充说明

CDK v2在迭代中对RDS模块API做了精细化拆分,将原ClusterInstance下的不同实例类型拆分为独立类,目的是让API语义更清晰、类型检查更严格。你使用的2.106.0版本已完全应用该变更,因此旧写法会触发属性不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:22:50