如何在Terraform中为SQS配置aws_lambda_event_source_mapping最大并发数
在Terraform中为关联SQS的Lambda事件源映射设置最大并发数
要给关联AWS SQS的aws_lambda_event_source_mapping设置最大并发数,直接使用该资源的maximum_concurrency参数即可,这个参数专门用来控制Lambda从指定SQS事件源同时处理的最大并发批次数量。
示例配置
# 假设已提前定义SQS队列与Lambda函数 resource "aws_lambda_event_source_mapping" "sqs_to_lambda" { event_source_arn = aws_sqs_queue.my_service_queue.arn function_name = aws_lambda_function.message_processor.function_name batch_size = 15 # 单批次处理的消息数量,按需调整 maximum_concurrency = 60 # 设置最大并发数,取值范围1-1000 # 可选:启用批量失败报告,便于SQS重新处理失败消息 function_response_types = ["ReportBatchItemFailures"] }
关键说明
maximum_concurrency取值范围为1到1000,该值不能超过Lambda函数自身的并发上限(包含预留并发和账户级未预留可用并发)。若函数设置了预留并发,需确保预留数量不小于此处的maximum_concurrency,否则会触发并发不足限制。- 总并发处理消息数=
batch_size×maximum_concurrency,可根据SQS消息量、Lambda处理性能调整这两个参数,平衡吞吐量与处理延迟。 - 该参数仅作用于当前事件源映射,不会影响Lambda函数的其他事件源或全局并发配置。
内容的提问来源于stack exchange,提问作者Ajith Ahangama Vitharanalage
相关产品推荐
相关产品推荐

