AWS CDK给CDK Pipelines配置Events Rule目标报ARN缺失错误如何解决
问题根因
你代码中实例化的CodePipeline属于aws_cdk.pipelines模块提供的高层封装构造,并非aws_codepipeline.Pipeline原生构造实例。而events_targets.CodePipeline入参要求必须传入原生CodePipeline实例,才能自动读取ARN等必要属性,直接传入高层封装构造时无法识别有效属性,因此触发ARN缺失的报错。
修复步骤
- 调用
aws_cdk.pipelines.CodePipeline实例自带的pipeline属性,即可获取底层封装的原生CodePipeline实例。 - 将原生实例传入
events_targets.CodePipeline即可完成配置。
修改后的核心代码
你只需要调整事件目标添加的代码行即可:
# 原错误代码: # rule.add_target(targets.CodePipeline(pipeline)) # 修改后代码: rule.add_target(targets.CodePipeline(pipeline.pipeline))
额外注意事项
你代码中super().__init__(scope, construct_id, **kwargs末尾缺少右括号,记得补充为super().__init__(scope, construct_id, **kwargs)避免语法报错。events_targets.CodePipeline会自动为事件规则配置启动CodePipeline所需的IAM权限,无需额外手动配置权限策略。
内容的提问来源于stack exchange,提问作者Raajhesh Kannaa
相关产品推荐
相关产品推荐

