我有一个 s3 存储桶,每 3 分钟就会上传一个 tar 文件。现在我想设置警报通知,如果 s3 文件在 5 分钟内没有收到任何数据,我应该收到电子邮件通知。不幸的是,我无法在 cloud-watch s3 中找到任何此类指标。如果有人有解决方案,请告诉我。
最佳答案
Amazon CloudWatch 为每个 Amazon S3 存储桶都有一个 NumberOfObjects
指标。
但是,我不确定它的更新频率。它肯定不会有 5 分钟的分辨率。
另外,没有警报表示“如果该数字没有改变”。
如果您的存储桶没有很多对象(例如 < 1000),一种方法是:
- 创建 Amazon CloudWatch Events 规则以触发 AWS Lambda 函数
- Lambda 函数将调用
list_bucket()
从存储桶中检索对象列表,然后按LastModified
排序 - 如果距离新文件已超过 x 分钟,则触发通知
如果存储桶有许多个对象,则:
- 创建一个 Amazon S3 事件,以便在对象添加到存储桶时触发 AWS Lambda 函数
- Lambda 函数应使用当前时间戳更新数据库(例如 DynamoDB)
- 创建 Amazon CloudWatch Events 规则以触发 AWS Lambda 函数
- Lambda 函数将从数据库中检索时间戳并将其与当前时间进行比较
- 如果自添加新文件以来已超过 x 分钟,则触发通知
关于amazon-web-services - 如果存储桶中 5 或 10 分钟没有收到数据,如何为 s3 存储桶设置云监视警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59063713/