如何创建CodeCommit新建PR时触发CodeBuild的CloudWatch事件?
问题解决方法
你当前配置的事件规则无法触发的核心原因是匹配字段不符合CodeCommit PR事件的实际结构,分两种场景修正:
场景1:你需要触发「源分支为master的PR创建」事件
如果你的需求是当有人从master分支发起PR到其他分支时触发构建,先排查两个配置项:
- 确认事件模式里填写的CodeCommit仓库ARN完全正确,核对区域、账号ID、仓库名拼写
- 确认EventBridge规则的目标配置中,已配置正确的CodeBuild项目ARN,且EventBridge服务拥有调用该CodeBuild项目的权限
如果以上配置都正确,原规则可以正常生效。
场景2:你需要触发「目标分支为master的PR创建」事件
这是绝大多数用户的实际需求,原规则的detail.referenceName字段匹配的是PR的源分支,要匹配目标分支需要修改事件模式,参考如下配置:
{ "source": [ "aws.codecommit" ], "detail-type": [ "CodeCommit Pull Request State Change" ], "resources": [ "arn:aws:codecommit:XX-XX-1:XXX:dev-test" ], "detail": { "event": [ "pullRequestCreated" ], "pullRequestTargets": { "referenceType": [ "branch" ], "referenceName": [ "master" ] } } }
通用排查方法
你可以在EventBridge控制台的「事件 → 事件历史」页面,筛选来源为aws.codecommit的事件,查看实际产生的PR事件完整结构,和你配置的事件模式做字段比对,可快速定位匹配错误。
内容的提问来源于stack exchange,提问作者h2o
相关产品推荐
相关产品推荐

