AWS CDK Java中S3存储桶生命周期配置单元测试失败排查
解决AWS CDK Java S3桶生命周期规则单元测试匹配失败问题
你的测试代码错误地将LifecycleConfiguration定义为数组类型,但实际上CDK生成的CloudFormation模板中,LifecycleConfiguration是一个对象,其内部的Rules字段才是数组。
修正后的测试代码
template.hasResourceProperties("AWS::S3::Bucket", Match.objectLike(Map.of( "LifecycleConfiguration", Map.of( "Rules", Collections.singletonList( Map.of( "ExpirationInDays", 7, "Status", "Enabled" ) ) ) )) );
关键修正点
- 移除包裹
LifecycleConfiguration的Collections.singletonList(),因为模板里该字段是对象而非数组 - 将
Rules定义为包含单条规则的列表(Collections.singletonList),匹配CDK生成的数组结构 - 调整
ExpirationInDays为数字类型7而非字符串"7",CDK生成的模板中该字段是数字类型
修正后,测试会完全匹配模板中LifecycleConfiguration对象下的Rules数组结构,即可通过测试。
内容的提问来源于stack exchange,提问作者mibrahim.iti
相关产品推荐
相关产品推荐

