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

创建用于生成EBS快照的EventBridge事件规则的更快捷方法

解决方案

最高效批量操作方案(无需手动逐个添加)

你可以通过AWS CLI + 简单的shell循环,或者Python脚本批量完成目标添加,全程无需控制台手动操作,70个卷1分钟内就能处理完成。

前置准备

  • 提前创建好定时触发的EventBridge规则,记录规则名称
  • 提前准备好有权限执行ec2:CreateSnapshot、且信任EventBridge服务的IAM角色ARN
  • 将你之前导出的70个EBS卷ID保存为ebs_volumes.txt文件,每行仅写一个卷ID

方案1:Shell + AWS CLI 批量添加

适用于可以直接运行AWS CLI、且有bash/zsh环境的设备,直接执行以下命令即可:

# 先替换为你自己的实际参数
RULE_NAME="你的EventBridge规则名称"
IAM_ROLE_ARN="arn:aws:iam::你的账号ID:role/你的角色名称"
VOLUME_FILE="./ebs_volumes.txt"
REGION="你的AWS资源所属区域"
ACCOUNT_ID="你的AWS账号ID"

# 循环读取卷ID,逐个添加为规则目标
while read -r VOL_ID; do
  aws events put-targets \
    --rule "$RULE_NAME" \
    --region "$REGION" \
    --targets "Id=$VOL_ID,Arn=arn:aws:events:$REGION::target/ec2-create-snapshot,RoleArn=$IAM_ROLE_ARN,Ec2Parameters={InstanceArn=arn:aws:ec2:$REGION:$ACCOUNT_ID:volume/$VOL_ID}"
done < "$VOLUME_FILE"

验证添加结果

执行以下命令查看已添加的目标总数,确认70个卷都已录入:

aws events list-targets-by-rule --rule "$RULE_NAME" --region "$REGION" --query "length(Targets)"

方案2:更易维护的长期方案(仅需1个EventBridge目标)

如果后续还要新增/删除需要快照的卷,每次批量修改70个目标效率很低,你可以改用Lambda作为唯一目标:

  1. 创建一个Python运行时的Lambda函数,函数逻辑为读取你指定的卷ID列表,循环调用EC2的CreateSnapshot接口
  2. 给Lambda函数配置对应的EC2快照创建权限
  3. 仅在EventBridge规则中添加这一个Lambda作为触发目标即可
    后续调整要快照的卷时,只需要修改Lambda内的卷列表,或者直接在代码里按标签筛选符合条件的EBS卷,不用再修改EventBridge规则的目标配置。

内容的提问来源于stack exchange,提问作者Josh Edgar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:42:03