Amazon web services Aws事件桥规则模式未与Aws SAM正确形成

Amazon web services Aws事件桥规则模式未与Aws SAM正确形成,amazon-web-services,aws-serverless,aws-sam,aws-event-bridge,Amazon Web Services,Aws Serverless,Aws Sam,Aws Event Bridge,我试图使用由S3事件触发的AWS SAM创建AWS状态机(步骤函数)。以下是我的AWS SAM yml代码片段 SampleStateMachine: Type: AWS::Serverless::StateMachine Properties: Name: sample-state-machine DefinitionUri: state-machines/my-definition.asl.json Events: S3P

我试图使用由S3事件触发的AWS SAM创建AWS状态机(步骤函数)。以下是我的AWS SAM yml代码片段

 SampleStateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      Name: sample-state-machine
      DefinitionUri: state-machines/my-definition.asl.json
      Events:
        S3PutEvent:
          Type: EventBridgeRule
          Properties:
            Pattern:
              source:
                - "aws.s3"
              detail:
                eventSource:
                  - s3.amazonaws.com
                eventName:
                  - PutObject
                requestParameters:
                  bucketName:
                    - !Ref MyBucketName
在部署此应用程序时,它正在使用我在sam yml模板中指定的模式成功创建规则。(但JSON键值对的顺序略有变化)

不幸的是,此规则没有从事件总线捕获任何事件。所以我尝试按照以下顺序更改JSON键值对

{ 
  "source": [ "aws.s3"
        ],
        "detail": {
          "eventSource": [
            "s3.amazonaws.com"
          ],
          "eventName": [
            "PutObject"
          ],
          "requestParameters": {
            "bucketName": [
              "my-bucket"
            ]
          }
        }
      }
它开始接收事件,工作正常

所以我的问题是,

  • 这个顺序对AWS eventbridge规则模式真的很重要吗
  • 如果是这样,我们如何在AWS sam执行(YML到JSON)时保持这种顺序

  • 谢谢

    顺序不重要。如果您可以重现该问题,您应该向AWS支持部门提交一份bug报告,以获得服务来修复它。

    顺序应该无关紧要。如果您可以重现该问题,您应该向AWS支持部门提交一份错误报告,让服务部门修复该问题。

    如果您可以确定订单是否影响该问题,那么您应该将其作为错误记录到AWS。我似乎在通过Terraform创建规则时遇到了同样的问题。JSON顺序在规则创建过程中更改+有序版本不起作用。你有解决这个问题的运气吗?如果你能确定订单影响它,那么你应该将它作为一个bug记录到aws。我似乎在通过Terraform创建规则时遇到了同样的问题。JSON顺序在规则创建过程中更改+有序版本不起作用。你解决这个问题运气好吗?
    { 
      "source": [ "aws.s3"
            ],
            "detail": {
              "eventSource": [
                "s3.amazonaws.com"
              ],
              "eventName": [
                "PutObject"
              ],
              "requestParameters": {
                "bucketName": [
                  "my-bucket"
                ]
              }
            }
          }