You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在有人卸载EBS卷时获取通知?

卸载EBS卷时获取通知的可行方案

方案一:用Amazon EventBridge + Amazon SNS(原生无代码方案)

这是最省事的原生实现方式:

  • 先创建一个SNS主题,配置好接收通知的渠道(邮箱、短信、HTTP接口都行),记得让订阅者确认订阅,不然收不到消息。
  • 去EventBridge里新建规则,事件源选EC2服务,事件类型指定成EBS Volume Detach(对应事件源aws.ec2,事件名称detachVolume)。
  • 把规则的目标设为你刚创建的SNS主题就行。以后只要有EBS卷被卸载,EventBridge会自动抓这个事件,然后通过SNS给你发通知。

附事件模式的配置示例:

{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Volume Attachment Change"],
  "detail": {
    "event": ["detachVolume"]
  }
}

方案二:加Lambda函数做定制化通知

如果想要更详细的通知内容(比如显示卷ID、关联的实例ID、操作时间),可以用Lambda做中间处理:

  • 写一个Lambda函数,解析EventBridge传过来的EC2事件数据,把关键信息提取出来,再调用SNS发送格式化后的消息。
  • 把EventBridge规则的目标换成这个Lambda函数就行。

给个Python版的Lambda代码片段参考:

import boto3
import json

sns_client = boto3.client('sns')
TARGET_SNS_TOPIC = '你的SNS主题ARN'

def lambda_handler(event, context):
    event_detail = event['detail']
    volume_id = event_detail['volume-id']
    instance_id = event_detail['instance-id']
    operate_time = event_detail['eventTime']
    
    notify_msg = f"⚠️ 有EBS卷被卸载:\n卷ID: {volume_id}\n关联实例ID: {instance_id}\n操作时间: {operate_time}"
    sns_client.publish(
        TopicArn=TARGET_SNS_TOPIC,
        Message=notify_msg,
        Subject="EBS卷卸载告警"
    )
    return {'statusCode': 200, 'body': '通知已发送'}

方案三:用AWS Config做合规式监控(适合审计场景)

如果需要长期跟踪EBS卷状态并满足合规要求,可以用AWS Config:

  • 创建自定义Config规则,监控EBS卷的attachments属性,当这个属性变为空(也就是卷被卸载)时触发告警。
  • 把Config的通知渠道关联到SNS,就能收到状态变化的通知。这个方案更偏向审计记录,适合需要留痕的场景。

内容的提问来源于stack exchange,提问作者Rohit Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:30:15