You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform AWS Provider 4.28.0中设置SQS触发器最大并发数

在Terraform AWS Provider 4.28.0中设置SQS触发器最大并发数

由于AWS Provider 4.28.0版本的aws_lambda_event_source_mapping资源未封装scaling_config配置项,我们可以通过结合Terraform资源与AWS CLI命令的方式实现最大并发数设为50的需求:

步骤1:创建基础Lambda事件源映射

先通过Terraform定义SQS与Lambda的关联关系:

resource "aws_lambda_event_source_mapping" "sqs_trigger" {
  event_source_arn = aws_sqs_queue.my_queue.arn
  function_name    = aws_lambda_function.my_lambda.arn
  batch_size       = 10 # 根据业务需求调整批量处理大小
  enabled          = true
}

步骤2:通过AWS CLI更新并发配置

使用null_resource配合local-exec执行AWS CLI命令,直接调用Lambda API设置最大并发数:

resource "null_resource" "configure_sqs_concurrency" {
  # 确保事件源映射创建完成后再执行配置
  depends_on = [aws_lambda_event_source_mapping.sqs_trigger]

  provisioner "local-exec" {
    command = <<EOT
      aws lambda update-event-source-mapping \
        --uuid ${aws_lambda_event_source_mapping.sqs_trigger.uuid} \
        --scaling-config '{"MaximumConcurrency": 50}'
    EOT
  }

  # 当事件源映射的UUID变化时,自动重新执行配置命令
  triggers = {
    event_source_uuid = aws_lambda_event_source_mapping.sqs_trigger.uuid
  }
}

注意事项

  • 执行Terraform的环境需要安装AWS CLI,且配置了具备lambda:UpdateEventSourceMapping权限的AWS凭证
  • 此方式通过外部命令修改资源,Terraform状态文件不会记录scaling_config的配置值,后续若通过Terraform修改aws_lambda_event_source_mapping资源,需确保该配置会被重新执行
  • 若在CI/CD流水线中执行,需提前在流水线环境配置好AWS CLI及对应凭证

内容的提问来源于stack exchange,提问作者Ravi Sigdel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:23:33