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

如何通过EventBridge定时规则向被调用的Lambda函数传递自定义参数

问题解答

可以通过EventBridge定时规则向触发的Lambda传递自定义JSON参数,你之前的报错是因为参数配置位置错误。

报错原因

withEventPattern对应的是事件匹配模式配置,作用是过滤符合条件的事件来触发规则,仅支持固定的匹配语法,不会将配置内容作为参数传递给目标Lambda。你在该字段下传入自定义JSON字段时,EventBridge会将自定义字段识别为非法的匹配运算符,因此抛出Unrecognized match type格式错误。

正确配置方式

自定义参数需要配置在规则的目标(Target)属性中,和规则本身的事件模式/定时表达式配置完全独立。定时触发类规则本身没有原生事件输入,所有传递给Lambda的事件内容都通过目标的输入配置定义,支持两种常用传参模式:

  • 固定JSON常量传入:直接将你需要传递的完整JSON内容配置到目标的Input字段,Lambda被触发时收到的事件对象就是你配置的JSON内容,完全匹配你需要传递类JSON文件自定义参数的需求。
  • 输入转换器拼接:如果需要同时传递规则触发时间、规则ARN等系统上下文信息和自定义参数,可以使用输入转换器,通过模板拼接固定自定义字段和系统变量。

配置示例(Java SDK)

// 1. 创建定时规则,定时规则无需配置EventPattern,仅需指定定时表达式
AmazonEventBridge eventBridgeClient = AmazonEventBridgeClientBuilder.defaultClient();
PutRuleRequest ruleReq = new PutRuleRequest()
        .withName("scheduled-lambda-trigger")
        .withScheduleExpression("cron(0 12 * * ? *)") // 示例为每天12点触发
        .withState(RuleState.ENABLED);
String ruleArn = eventBridgeClient.putRule(ruleReq).getRuleArn();

// 2. 配置Lambda目标,自定义JSON参数在目标的Input字段传入
String customParams = "{\"id\":\"unique_id\",\"businessConfig\":{\"timeout\":30,\"enableNotify\":true}}";
Target lambdaTarget = new Target()
        .withArn("arn:aws:lambda:region:account-id:function:your-lambda-name")
        .withId("lambda-target-1")
        .withInput(customParams); // 自定义参数配置位置,不要写入EventPattern

// 3. 绑定目标到规则
PutTargetsRequest targetReq = new PutTargetsRequest()
        .withRule("scheduled-lambda-trigger")
        .withTargets(lambdaTarget);
eventBridgeClient.putTargets(targetReq);

注意:Input字段接收标准转义后的JSON字符串,如果通过控制台配置,直接在目标配置步骤的「输入配置」栏选择「常量(JSON文本)」,粘贴未转义的原生JSON即可,控制台会自动处理格式转义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.10 16:15:46