如何在Amazon S3存储桶创建时发送通知?
在Amazon S3存储桶创建时发送通知的实现方案
S3本身没有内置的存储桶创建事件触发器,要实现这个需求,需要结合CloudTrail和EventBridge捕获存储桶创建的API事件,再触发通知。以下是具体操作步骤:
步骤1:启用CloudTrail并记录S3事件
- 打开CloudTrail控制台,确认已创建跟踪(Trail),且跟踪配置勾选记录所有区域的事件,确保S3的API调用被纳入日志范围。
- 检查跟踪的日志存储桶,确认日志能正常生成并写入。
步骤2:在EventBridge创建规则捕获CreateBucket事件
- 进入EventBridge控制台,点击“创建规则”,自定义规则名称(比如
s3-bucket-creation-alert)和描述。 - 事件源选择“AWS事件或EventBridge合作伙伴事件”,然后选择“自定义模式”,输入以下JSON模式匹配S3的
CreateBucket调用:{ "source": ["aws.s3"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventName": ["CreateBucket"] } } - 保存事件模式配置。
步骤3:配置通知目标
- 在规则的“目标”模块点击“添加目标”,根据需求选择通知方式:
- SNS主题:若要发送邮件、短信,选择已有SNS主题或创建新主题,添加订阅者(邮箱、手机号等)。
- Lambda函数:需自定义处理事件再发送通知的话,选择对应Lambda函数。
- 其他目标:比如SQS队列、EventBridge API目标等,按需选择。
- 完成配置后点击“创建规则”。
步骤4:测试验证
- 手动创建一个新S3存储桶,等待数分钟后检查通知渠道(如邮箱)是否收到消息。
- 也可在EventBridge控制台的“事件”页面,确认是否捕获到
CreateBucket事件,验证规则触发正常。
注意事项
- CloudTrail日志生成存在几分钟延迟,通知属于近实时触发。
- 确保权限配置正确:EventBridge需有调用目标服务(如SNS、Lambda)的权限,CloudTrail需有写入日志桶的权限。
内容的提问来源于stack exchange,提问作者berkayln
相关产品推荐
相关产品推荐

