############################################ # IAM role ############################################ module "role" { source = "../../../modules/lambda_execution_role" name = "${var.name}-lambda-${var.stage}" } output "role_name" { value = module.role.role_name } ############################################ # SQS queue + DLQ ############################################ module "queue" { source = "../../../modules/sqs_queue" name = "${var.name}-queue-${var.stage}" } ############################################ # Lambda ############################################ module "lambda" { source = "../../../modules/lambda_service" name = "${var.name}-${var.stage}" role_arn = module.role.role_arn image_uri = var.image_uri timeout = var.timeout memory_size = var.memory_size environment = var.environment } ############################################ # SQS → Lambda trigger ############################################ module "sqs_trigger" { source = "../../../modules/lambda_sqs_trigger" lambda_arn = module.lambda.lambda_arn lambda_role_name = module.role.role_name queue_arn = module.queue.queue_arn batch_size = var.batch_size }