API Handler

module "api_handler" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/lambda-function/aws"
  version = "3.1.0"

  function_name = "api-handler"
  runtime       = "nodejs20.x"
  handler       = "index.handler"
  source_path   = "./dist"

  memory_size = 256
  timeout     = 29  # API Gateway limit

  environment_variables = {
    NODE_ENV     = "production"
    API_VERSION  = "v1"
  }
}

# Grant API Gateway permission to invoke
resource "aws_lambda_permission" "api_gateway" {
  statement_id  = "AllowAPIGateway"
  action        = "lambda:InvokeFunction"
  function_name = module.api_handler.function_name
  principal     = "apigateway.amazonaws.com"
}