如何从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
相关产品推荐
相关产品推荐

