在AWS Lambda中,每个事件(消息)都会触发一个Lambda函数的执行。Lambda函数可以处理多个事件,但是每个事件都会被独立处理,并且Lambda函数本身不会复制每个消息。
以下是一个处理SNS消息的Lambda函数示例,展示了如何在Lambda函数中处理多个事件:
import json
def lambda_handler(event, context):
for record in event['Records']:
# 处理SNS消息
sns_message = json.loads(record['Sns']['Message'])
# 处理sns_message
# 处理其他事件
if record['eventName'] == 'INSERT':
# 处理INSERT事件
pass
elif record['eventName'] == 'MODIFY':
# 处理MODIFY事件
pass
elif record['eventName'] == 'REMOVE':
# 处理REMOVE事件
pass
return 'Success'
在上述示例中,Lambda函数的输入参数event
是一个包含多个事件的字典。可以通过遍历event['Records']
来处理每个事件。在示例中,处理了SNS消息以及其他不同类型的事件。
需要注意的是,Lambda函数处理每个事件的时间是有限制的(通常是5分钟)。如果处理事件的时间超过了限制,Lambda函数可能会被中断。因此,在设计Lambda函数时,需要确保函数能够在时间限制内处理所有事件。