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"
}