AWS Cloudformation Lambda 和事件规则 - Lambda 没有被带有后缀的 s3 事件触发?

AWS Cloudformation Lambda and Event Rule - Lambda not getting triggered with s3 event with a suffix?

我已经使用 cloudformation 创建了 lambda 和 s3 事件规则,但 lambda 没有按照配置的规则被触发。 根据事件规则,只要在具有特定后缀的特定 s3 存储桶中创建文件,我希望 lambda 触发。 规则被授予调用 lambda 的权限。但是当我上传文件时(例如 portfolio.testSuffix)lambda 没有被触发。

  EventRule:
    Type: AWS::Events::Rule
    Properties:
      Description: 'test s3 event'
      EventPattern:
        source:
          - 'aws.s3'
        detail:
          eventSource:
            - 's3.amazonaws.com'
          eventName:
            - 'CopyObject'
            - 'PutObject'
          requestParameters:
            bucketName:
              - 'test-bucket'
            key:
              - |
               {"suffix": ".testsuffix"}
      State: 'ENABLED'
      Targets:
        -
          Arn: !GetAtt TestLambda.Arn
          Id: 'TestLambdaTargetId'
  LambdaInvokePermission:
    Type: AWS::Lambda::Permission
    Properties:
      Action: 'lambda:InvokeFunction'
      FunctionName: !GetAtt TestLambda.Arn
      Principal: 'events.amazonaws.com'
      SourceArn: !GetAtt EventRule.Arn        
          

任何人都可以帮助确定此配置中的错误以及为什么没有触发 lambda 吗?

根据 Eventbridge documentation,不支持 后缀 模式。

key:
 - |
  {"suffix": ".testsuffix"}

下面是 EventBridge 中可用的所有比较运算符的列表:

Null, Empty, Equals, And, Or, Not, Numeric (equals), Numeric (range), Exists, Does not exist, Begins with

另见Content-based filtering