能否通过单个EventBridge调度触发多个Lambda函数?
单个EventBridge调度触发多个Lambda函数的实现方法
当然可以,无需为每个Lambda单独创建调度,有两种常用实现方式:
方法一:给EventBridge规则添加多个Lambda目标
这是最直接的方式,无需额外代码:
- 在EventBridge控制台创建或编辑规则时,进入「目标」配置环节,点击「添加目标」;
- 分别选择staging和production环境的Lambda函数作为目标,每个目标可独立配置输入参数(比如通过
InputTransformer给不同环境传递专属标识); - 保存规则后,当调度触发时,EventBridge会同时调用这两个Lambda函数。
方法二:通过中间Lambda转发请求
如果需要在触发前添加自定义逻辑(比如错误重试、条件判断、日志聚合),可以用一个中间Lambda作为转发器:
- 创建一个中间Lambda函数,让EventBridge规则仅触发这个函数;
- 在中间Lambda内部,调用staging和production环境的两个目标Lambda;
- 示例Python代码:
import boto3 lambda_client = boto3.client('lambda') def lambda_handler(event, context): # 调用staging环境Lambda lambda_client.invoke( FunctionName='staging-your-function-name', InvocationType='Event', Payload=b'{"environment": "staging"}' ) # 调用production环境Lambda lambda_client.invoke( FunctionName='production-your-function-name', InvocationType='Event', Payload=b'{"environment": "production"}' ) return {'statusCode': 200, 'body': '已触发两个环境的Lambda函数'}
两种方式都能避免重复创建调度资源,直接添加多目标适合简单场景,中间转发器适合需要自定义逻辑的场景。
内容的提问来源于stack exchange,提问作者Jplus2
相关产品推荐
相关产品推荐

