AWS Lambda支持多个触发器,您可以使用不同类型的触发器来触发同一个Lambda函数。以下是一个示例解决方案,其中包含使用多个触发器的代码示例:
import boto3
def lambda_handler(event, context):
# 处理S3触发器
if 'Records' in event:
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
print(f"处理S3触发器,Bucket: {bucket}, Key: {key}")
# 处理CloudWatch定时触发器
if 'source' in event and event['source'] == 'aws.events':
print("处理CloudWatch定时触发器")
# 其他逻辑
print("Lambda函数执行完毕")
import json
def lambda_handler(event, context):
# 处理API Gateway触发器
if 'httpMethod' in event:
http_method = event['httpMethod']
print(f"处理API Gateway触发器,HTTP方法: {http_method}")
# 处理SNS触发器
if 'Records' in event:
for record in event['Records']:
sns_message = json.loads(record['Sns']['Message'])
print(f"处理SNS触发器,消息: {sns_message}")
# 其他逻辑
print("Lambda函数执行完毕")
这些示例展示了如何在一个Lambda函数中处理多个触发器。您可以根据实际需求选择不同的触发器类型,并根据需要在Lambda函数中编写相应的逻辑来处理这些触发器。