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

如何在手动提升RDS只读副本为独立实例时触发Lambda函数?

解决手动提升RDS只读副本触发Lambda的问题

核心思路:通过CloudTrail捕获PromoteReadReplica事件,用EventBridge触发Lambda

1. 确认CloudTrail是否捕获目标事件

手动执行一次只读副本提升操作后,到CloudTrail事件历史中搜索PromoteReadReplica:

  • 检查CloudTrail跟踪是否覆盖RDS实例所在区域,且未过滤RDS服务的管理事件
  • 若未找到事件,确认CloudTrail跟踪已开启对RDS的事件捕获(默认管理事件已包含该API调用)

2. 创建EventBridge规则匹配事件

在EventBridge控制台创建规则:

  • 规则类型选事件模式,选择"自定义模式",输入以下匹配规则:
    {
      "source": ["aws.rds"],
      "detail-type": ["AWS API Call via CloudTrail"],
      "detail": {
        "eventSource": ["rds.amazonaws.com"],
        "eventName": ["PromoteReadReplica"]
      }
    }
    
  • 目标选择需触发的Lambda函数,完成配置

3. 排查常见故障点

  • 事件延迟:CloudTrail事件可能有15-30分钟延迟,操作后需等待一段时间再验证
  • 区域不匹配:确保EventBridge规则、CloudTrail跟踪、RDS实例处于同一区域
  • Lambda权限:给Lambda添加允许EventBridge调用的权限策略:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {"Service": "events.amazonaws.com"},
          "Action": "lambda:InvokeFunction",
          "Resource": "arn:aws:lambda:<区域>:<账号ID>:function:<你的Lambda函数名>"
        }
      ]
    }
    
  • 过滤规则错误:检查EventBridge是否有额外过滤条件排除了PromoteReadReplica事件

4. 备选方案:RDS原生事件通知

若CloudTrail方案仍有问题,可使用RDS事件通知:

  • 进入RDS控制台,选择目标只读副本,配置"事件通知"
  • 勾选配置更改类别(包含提升副本的事件),目标选择SNS主题
  • 将Lambda订阅到该SNS主题,实现事件触发

内容的提问来源于stack exchange,提问作者Syed Muhammad Danial

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:12:23