data "aws_vpc" "main" {
tags = { Name = "main" }
}
data "aws_subnets" "private" {
filter {
name = "vpc-id"
values = [data.aws_vpc.main.id]
}
tags = { Tier = "private" }
}
resource "aws_security_group" "lambda" {
name_prefix = "lambda-"
vpc_id = data.aws_vpc.main.id
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
module "db_processor" {
source = "registry.patterneddesigns.ca/patterneddesigns/lambda-function/aws"
version = "3.1.0"
function_name = "db-processor"
runtime = "python3.12"
handler = "main.handler"
source_path = "./src"
memory_size = 512
timeout = 300
vpc_config = {
subnet_ids = data.aws_subnets.private.ids
security_group_ids = [aws_security_group.lambda.id]
}
environment_variables = {
DB_HOST = "db.internal.example.com"
DB_NAME = "myapp"
}
}