locals {
  lambda_datadog_native_python_dir = "lambda/datadog-native-python"
  lambda_datadog_native_python_hash = md5(join(",", [
    filemd5("${local.lambda_datadog_native_python_dir}/index.py"),
    filemd5("${local.lambda_datadog_native_python_dir}/requirements.txt")
  ]))
  lambda_datadog_native_python_package = "lambda-datadog-native-python-${null_resource.lambda_datadog_native_python_build.id}.zip"
}

resource "null_resource" "lambda_datadog_native_python_build" {
  triggers = {
    src_hash = local.lambda_datadog_native_python_hash
  }

  provisioner "local-exec" {
    command = "/bin/bash ./lambda/build-native-python.sh"

    environment = {
      SRC_DIR = local.lambda_datadog_native_python_dir
    }
  }
}

data "archive_file" "lambda_datadog_native_python_package" {
  type        = "zip"
  source_dir  = local.lambda_datadog_native_python_dir
  output_path = local.lambda_datadog_native_python_package
}

module "lambda_datadog_native_python" {
  source = "../"

  environment        = var.environment
  lambda_name        = "${var.service_name}-datadog-native-python"
  lambda_description = "Tests DataDog integration with native Python Lambdas."
  application_family = "platform"

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

  vpc_id         = var.vpc_id
  vpc_subnet_ids = var.vpc_subnet_ids

  datadog_enabled          = true
  datadog_advanced_enabled = true
}
