0

当我将 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"
    ]
  }
}

这里缺少什么?或者任何人对如何进一步调试有任何指示?

4

2 回答 2

1

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

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

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

于 2021-01-05T15:36:45.663 回答
-1

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

这是我解决它的相关答案: S3 object level events are not getting triggered

于 2021-01-07T03:11:08.983 回答