我的CodePipeline没有在s3事件触发器上被触发



当我将code.zip上传到s3 bucket或使用aws-cli(aws-s3 cp(复制code.zip时,我的CodePipeline不会被触发。

Cloudformation事件规则片段:

Type: AWS::Events::Rule
Properties:
EventPattern:
source:
- 'aws.s3'
detail:
eventSource:
- 's3.amazonaws.com'
eventName:
- 'CopyObject'
- 'PutObject'
- 'CompleteMultipartUpload'
requestParameters:
bucketName:
- 's3-bucket'
key:
- 'code.zip'
State: 'ENABLED'
Targets:
-
Arn: <CodePipeline ARN>'
Id: 'Target-1'
RoleArn: <trigger role ARN>

触发角色策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codepipeline:StartPipelineExecution"
],
"Resource": "*"
}
]
}

事件模式:

{
"source": [
"aws.s3"
],
"detail": {
"eventSource": [
"s3.amazonaws.com"
],
"requestParameters": {
"bucketName": [
"s3-bucket"
],
"key": [
"code.zip"
]
},
"eventName": [
"CopyObject",
"PutObject",
"CompleteMultipartUpload"
]
}
}

这里少了什么?或者有人有关于如何进一步调试的建议吗?

有两种方法可以进一步调试它。

首先,您需要确保您有一个可工作的事件模式。最简单的方法是获取一个示例代码管道事件,然后通过https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_TestEventPattern.html.

接下来,如果你有一个工作规则,你可以检查指标https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-monitoring-cloudwatch-metrics.html和设置DLQhttps://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html.两者都提供了规则是否匹配以及是否成功交付的可见性。

问题是S3没有触发事件,当我从CloudTrail启用它时,它就工作了。

以下是我用来解决问题的相关答案:S3对象级事件未被触发

最新更新