无服务器框架以及如何使 AWS 状态机能够被 S3 事件规则调用

Serverless Framework and how to enable AWS State Machine to be called by an S3 event rule

根据无服务器框架插件的文档,See examples here我们能够让我们的状态机被 EC2 事件规则调用。

(从上面 link )

stepFunctions:
  stateMachines:
    first:
      events:
        - cloudwatchEvent:
            event:
              source:
                - "aws.ec2"
              detail-type:
                - "EC2 Instance State-change Notification"
              detail:
                state:
                  - pending
      definition:
        ...

我希望从 S3 事件规则调用我的状态机。

但是,根据 AWS CloudWatch Even Types documentation,我们似乎无法使用 S3 事件规则,因为它没有出现在 AWS CloudWatch Even Types 文档中 link

这是否意味着我不能使用此插件根据 S3 事件规则调用我的状态机,例如上传到 S3 的新对象??

这取决于您尝试触发的 S3 事件类型。

您提供的 link 表明您 can use CloudTrail events to trigger CloudWatch event rules。这将允许您触发 creating/removing 桶等事件。

如果您想从存储桶中触发对象 added/deleted 之类的事情,那么如果不编写一些额外的资源,您将无法做到这一点。你可以create S3 events to trigger SQS, SNS or a Lambda function。我的建议是实施一个接受 S3 事件并根据需要启动状态机的 lambda 函数。然后创建一个 S3 事件以在发生所需的对象事件时触发您的 lambda。