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

AWS Backup完成Aurora RDS集群备份后如何获取集群ID

实现方案

方案1:直接从AWS Backup事件结构解析集群ID

你之前在EventBridge排查时漏了事件顶层的resources字段——AWS Backup的作业完成事件不会直接在detail块里放明文集群ID,被备份资源的唯一标识存在事件顶层的resources数组中。
SNS触发Lambda时,事件体封装在Records[0].Sns.Message字段中,是JSON格式字符串,反序列化后提取resources[0]即可拿到Aurora集群的完整ARN,Aurora集群ARN固定格式为arn:aws:rds:<区域>:<账号ID>:cluster:<集群ID>,按冒号分割取最后一段就是目标集群ID,参考处理代码:

import json
import boto3

rds_client = boto3.client('rds')

def lambda_handler(event, context):
    # 解析SNS推送的消息体
    backup_event = json.loads(event['Records'][0]['Sns']['Message'])
    # 提取被备份资源ARN
    cluster_arn = backup_event['resources'][0]
    # 解析集群ID
    cluster_id = cluster_arn.split(':')[-1]
    
    # 后续可直接调用RDS接口查询集群详情
    cluster_info = rds_client.describe_db_clusters(DBClusterIdentifier=cluster_id)
    return cluster_info

方案2:通过备份作业ID反查资源信息(容错率更高)

如果担心事件结构变动导致解析失败,可以用事件detail块中自带的jobId字段(即本次备份作业的唯一ID),调用AWS Backup的DescribeBackupJob接口获取资源信息:

  • Lambda执行角色需要提前附加backup:DescribeBackupJob权限
  • 接口返回结果中的ResourceArn字段即为Aurora集群ARN,解析后即可拿到集群ID
    该方法不依赖事件结构的固定位置,兼容性更强。

无效路径说明

你之前配置的RDS事件订阅无法收到AWS Backup操作通知属于正常现象:RDS事件订阅仅捕获RDS服务原生触发的操作事件,AWS Backup是独立的备份服务,其触发的备份作业不会向RDS事件总线推送对应事件,无需在该方向继续调试。

可选优化链路

如果不想依赖SNS做中转,可以直接配置EventBridge规则匹配AWS Backup作业完成事件:

  • 匹配条件:source = aws.backup、detail.state = COMPLETED、detail.resourceType = Aurora
  • 规则目标直接绑定Lambda,同时可配置输入转换器提前提取集群ID,简化Lambda侧的处理逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:36:28