Model/infrastructure/terraform/lambda/address2UPRN/main.tf
2026-02-03 11:12:25 +00:00

88 lines
2.2 KiB
HCL

############################################
# Read shared state to get outputs
############################################
data "terraform_remote_state" "shared" {
backend = "s3"
config = {
bucket = "assessment-model-terraform-state"
key = "terraform.tfstate"
region = "eu-west-2"
}
}
############################################
# IAM role
############################################
module "role" {
source = "../../modules/lambda_execution_role"
name = "address2uprn-lambda-${var.stage}"
}
############################################
# SQS queue
############################################
module "queue" {
source = "../../modules/sqs_queue"
name = "address2uprn-queue-${var.stage}"
}
############################################
# Lambda (image-based)
############################################
module "lambda" {
source = "../../modules/lambda_service"
name = "address2uprn-${var.stage}"
role_arn = module.role.role_arn
image_uri = "${data.terraform_remote_state.shared.outputs.address2uprn_repository_url}@${var.image_digest}"
timeout = 60
memory_size = 1024
environment = {
STAGE = var.stage
LOG_LEVEL = "info"
}
}
############################################
# 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
}
############################################
# Read shared state to get outputs
############################################
data "terraform_remote_state" "shared" {
backend = "s3"
config = {
bucket = "assessment-model-terraform-state"
key = "terraform.tfstate"
region = "eu-west-2"
}
}
############################################
# Address2UPRN Lambda (via reusable module)
############################################
module "address2uprn" {
source = "../modules/lambda_with_sqs"
name = "address2uprn"
stage = var.stage
image_uri = "${data.terraform_remote_state.shared.outputs.address2uprn_repository_url}@${var.image_digest}"
environment = {
STAGE = var.stage
LOG_LEVEL = "info"
}
}