首页 > 解决方案 > Cloudwatch:用于监控 S3 文件的事件类型语法

问题描述

每次我在 S3 中的文件更新/重新上传时,我都需要创建一个运行 lambda 函数的 cloudwatch 事件。我应该使用什么“eventName”?我尝试使用“ObjectCreated”,但它似乎不起作用。也许语法不正确。

https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html

{
  "source": [
    "aws.s3"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "s3.amazonaws.com"
    ],
    "eventName": [ "ObjectCreated:*"],
    "requestParameters": {
      "bucketName": [
        "mynewbucket"
      ],
      "key": [
        "file.csv"
      ]
    }
  }
}

标签: amazon-web-servicesamazon-s3aws-lambdaamazon-cloudwatchamazon-cloudwatchlogs

解决方案


CloudWatch Events(或 EventBridge)不会自动跟踪 S3 对象的数据事件。您需要为此使用 CloudTrail,它跟踪特定 S3 存储桶上的数据事件并为此发出 CloudWatch Events(或 EventBridge)事件:https ://aws.amazon.com/blogs/compute/using-dynamic-amazon- s3-event-handling-with-amazon-eventbridge/

或者,您可以将S3 事件通知与 SNS 主题一起使用,并在 SNS 主题上使用 Lambda 订阅。


推荐阅读