EventBridge定时触发Python Lambda,lambda_handler应传入什么event参数?
关于EventBridge定时触发Lambda的event参数说明
当你通过EventBridge的cron表达式触发Lambda函数时,不需要手动传入event参数——Lambda会自动接收EventBridge生成的事件对象,哪怕是定时任务,这个事件也包含了触发源的元数据。
你可以直接保留lambda_handler(event, context):的默认函数签名,不需要修改参数。如果你的业务逻辑不需要用到event里的内容,完全可以忽略它,比如这样写:
def lambda_handler(event, context): # 这里写定时执行的逻辑,比如打印日志、调用内部服务等 print("定时任务开始执行") return "执行完成"
要是你好奇这个event的具体结构,它大概长这样(包含EventBridge的触发元数据):
{ "version": "0", "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2024-05-20T13:00:00Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/YourScheduleRule" ], "detail": {} }
其中detail字段是空的,因为定时触发没有业务数据,但整个event对象是合法存在的,Lambda会自动传递给你的函数。
总结:
- 无需手动传入event,Lambda会自动处理参数传递
- 若业务逻辑用不到event,直接忽略即可,保持默认函数签名
- 如需查看触发的元数据,可以从event中提取对应字段
内容的提问来源于stack exchange,提问作者NoamiA
相关产品推荐
相关产品推荐

