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

AWS CDK中Event Bridge规则实现问题求助

解决方案:修正Event Bridge规则的事件模式并关联现有事件总线

核心问题分析

你之前调整的事件模式错误地将replay-name放在了detail层级下,而实际上它是事件的顶级字段;同时$or条件需要正确对应到detail.distance和detail.duration的数值判断。

修正后的CDK代码

cfn_rule = aws_events.CfnRule(
    self,
    id=f"{stack_id}-rule-to-invoke-lambda",
    name="rule-to-invoke-lambda",
    # 关联现有事件总线(已正确配置,确保event_bus是现有总线的引用)
    event_bus_name=event_bus.event_bus_name,
    # 正确匹配控制台配置的事件模式
    event_pattern={
        "source": ["mts-simulation"],
        "replay-name": [{"exists": true}],
        "$or": [
            {"detail.distance": [{"numeric": [">=", 0]}]},
            {"detail.duration": [{"numeric": [">=", 0]}]}
        ]
    },
    targets=[
        aws_events.CfnRule.TargetProperty(
            arn=lambda_function.function_arn,
            id=f"{stack_id}-target-to-lambda-function",
            input_transformer=aws_events.CfnRule.InputTransformerProperty(
                input_template='{"uptime":"<detail-uptime>",'
                ' "distance": "<detail-distance>",'
                '"duration": "<detail-duration>","timestamp": "<timestamp>"}',
                input_paths_map={
                    "timestamp": "$.time",
                    "detail-uptime": "$.detail.system_uptime",
                    "detail-distance": "$.detail.distance",
                    "detail-duration": "$.detail.duration",
                },
            ),
        )
    ],
)

关键修正点说明

  1. 顶级字段replay-name配置:将"replay-name": [{"exists": true}]放在事件模式顶级层级,和source、$or同级,匹配事件的实际结构。
  2. $or条件还原:保留原控制台的detail.distance和detail.duration路径,确保匹配事件中detail嵌套字段的数值判断逻辑。
  3. 现有事件总线关联:你代码中event_bus_name=event_bus.event_bus_name的配置是正确的,只要event_bus变量是对现有事件总线的有效引用(比如通过aws_events.EventBus.from_event_bus_name获取),就能完成关联。

验证建议

部署后可通过Event Bridge控制台查看规则的事件模式,确认与手动配置的一致;同时发送测试事件验证规则是否能正确触发Lambda。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:23:23