跨账号ECR镜像复制后,目标账号CodePipeline无法触发求助
跨账号ECR复制触发目标账号CodePipeline的解决方案
问题原因
你当前的EventBridge规则里指定了action-type: ["PUSH"],但跨账号ECR镜像复制操作触发的事件,其action-type实际是COPY而非PUSH,所以规则无法匹配到复制完成的事件,导致流水线未触发。
修正方案
修改目标账号的EventBridge规则
将规则中的action-type从["PUSH"]改为["COPY"],修正后的规则如下:{ "source": ["aws.ecr"], "detail-type": ["ECR Image Action"], "detail": { "action-type": ["COPY"], "result": ["SUCCESS"], "repository-name": ["repo_name"] } }验证规则权限
确保EventBridge规则的执行角色拥有codepipeline:StartPipelineExecution权限,允许它触发目标账号的CodePipeline。确认事件匹配
可以在目标账号的CloudWatch事件历史中查看ECR的镜像复制事件,确认detail字段中的action-type确实为COPY,同时检查repository-name等字段是否与规则中的值一致。
额外说明
如果是通过ECR自带的跨账号复制功能(手动配置复制规则或API触发复制),生成的事件类型都是COPY,只有本地手动推送镜像才会触发PUSH类型的事件,因此必须调整规则的匹配条件才能触发流水线。
内容的提问来源于stack exchange,提问作者Bhargav
相关产品推荐
相关产品推荐

