locals {
  lambda_efs_hash    = filemd5("lambda/efs/index.py")
  lambda_efs_package = "lambda-efs-${local.lambda_efs_hash}.zip"
}

data "archive_file" "lambda_efs_package" {
  type        = "zip"
  source_file = "lambda/efs/index.py"
  output_path = local.lambda_efs_package
}

module "test_dev_efs_volume" {
  source = "git@github.com:theorchard/terraform-efs.git//?ref=1.3.0"

  environment              = var.environment
  service_name             = var.service_name
  application_family       = "platform"
  zone_id                  = "Z21XEY26C989RH"
  custom_access_point_path = var.lambda_efs_path
}

module "test_dev_lambda_with_efs" {
  source = "../"

  environment        = var.environment
  application_family = "platform"

  lambda_name        = "${var.service_name}-with-efs"
  lambda_description = "Lambda function EFS integration test."

  lambda_runtime               = "python3.12"
  lambda_function_handler      = "index.handler"
  lambda_function_package_path = data.archive_file.lambda_efs_package.output_path

  iam_managed_policy_attachments = [
    module.test_dev_efs_volume.efs_iam_policy_arn_output
  ]

  efs_enabled          = true
  efs_access_point_arn = module.test_dev_efs_volume.efs_access_point_arn_output
  efs_local_mount_path = var.lambda_efs_path

  vpc_id         = var.vpc_id
  vpc_subnet_ids = var.vpc_subnet_ids

  datadog_enabled = false
}
