CDK Python配置S3跨区域复制synth报union类型匹配错误如何排查
问题修复方案
报错的核心原因是两个字段的传入类型不符合CDK的类型定义要求,修改方案如下:
错误点说明
destination字段不能直接传入目标桶ARN字符串,必须传入s3.CfnBucket.ReplicationDestinationProperty类型对象source_selection_criteria字段必须传入s3.CfnBucket.SourceSelectionCriteriaProperty类型对象,你当前直接传入了SseKmsEncryptedObjectsProperty类型对象,触发了联合类型匹配失败的报错
修复后代码示例
self.replication_conf = s3.CfnBucket.ReplicationConfigurationProperty( role=new_role_arn, rules=[ s3.CfnBucket.ReplicationRuleProperty( id='replicate-all-rule', # 修复destination字段,包裹为ReplicationDestinationProperty destination=s3.CfnBucket.ReplicationDestinationProperty( bucket=some_arn ), status='Enabled', # 修复source_selection_criteria字段,先套SourceSelectionCriteriaProperty source_selection_criteria = s3.CfnBucket.SourceSelectionCriteriaProperty( sse_kms_encrypted_objects=s3.CfnBucket.SseKmsEncryptedObjectsProperty( status='Enabled' ) ) ) ] )
修改完成后重新执行cdk synth即可正常生成模板。
内容的提问来源于stack exchange,提问作者Jimmy Chen
相关产品推荐
相关产品推荐

