AWS Lambda默认的执行时间限制是900秒(即15分钟)。如果需要超过这个限制,可以通过以下两种方式解决:
import boto3
def lambda_handler(event, context):
# 分解任务为多个较小的任务
tasks = split_tasks(event)
# 异步调用其他Lambda函数处理任务
lambda_client = boto3.client('lambda')
for task in tasks:
lambda_client.invoke(
FunctionName='other_lambda_function',
InvocationType='Event',
Payload=task
)
{
"Comment": "A sample Step Functions state machine that invokes multiple Lambda functions",
"StartAt": "InvokeLambda1",
"States": {
"InvokeLambda1": {
"Type": "Task",
"Resource": "arn:aws:lambda:region:account:function:lambda_function_1",
"Next": "InvokeLambda2"
},
"InvokeLambda2": {
"Type": "Task",
"Resource": "arn:aws:lambda:region:account:function:lambda_function_2",
"End": true
}
}
}
上述代码中,InvokeLambda1
和InvokeLambda2
分别表示需要调用的Lambda函数。可以根据实际需求,在Step Functions中添加更多的Lambda函数。
通过以上两种方式,可以解决AWS Lambda超过900秒限制的问题。具体选择哪种方式取决于任务的复杂性和需求。
下一篇:AWS Lambda超时