首页 > 解决方案 > 使用来自不同 AWS 账户的 S3 事件触发 AWS Step Function 状态机

问题描述

好吧,标题说明了一切。我想要达到的目标:

但它不起作用。据我所知,存储桶是全球性的,而不是账户范围内的,因此这里的 AWS 文档https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-cloudwatch-events-s3.html我们应该只在请求参数中给出存储桶名称。

存储桶已经包含一个策略,可以完全访问 Step Function 状态机所在的帐户,因为我正在运行的作业包括从该存储桶获取数据,并且工作正常。只有触发器不起作用。

我的事件模式如下所示:

{
  "source": [
        "aws.s3"
      ],
  "detail-type": [
        "AWS API Call via CloudTrail"
      ],
  "detail": {
    "eventSource": [
      "s3.amazonaws.com"
        ],
      "eventName": [
          "PutObject"
        ],
      "requestParameters": {
          "bucketName": [
            "my-bucket-name"
          ]
       }
     }
}

我需要一些额外的配置吗?

新信息:

我忘记了一些事情,所以我按照本教程进行操作:https ://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEvents-CrossAccountEventDelivery.html#WritingRulesThatMatchEventsFromAnotherAccount

"account": ["account X number"]

但是由于某种原因,账户 Y 中的 step 函数没有被触发......

标签: amazon-web-servicesamazon-s3amazon-cloudwatchaws-step-functions

解决方案


推荐阅读