provider "aws" {
  region = "${var.region}"
}

terraform {
  backend "s3" {
    bucket         = "orcd-terraform-state"
    key            = "prod/lambda-neo4j-watchdog/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = "true"
    dynamodb_table = "terraform-prod-lambda-neo4j-watchdog"
  }
}

module "lambda-neo4j-watchdog" {
  source                                         = "git@github.com:theorchard/terraform-lambda.git//"
  environment                                    = "${var.env}"
  use_custom_function_name                       = true
  custom_function_name                           = "neo4j-cluster-role-check-watchdog-${var.env}"
  lambda_name                                    = "neo4j-cluster-role-check-watchdog"
  lambda_description                             = "Periodically runs diagnostic queries in Neo4J cluster."
  lambda_function_package_path                   = "lambda.zip"
  lambda_function_timeout                        = "60"
  lambda_function_handler                        = "index.handler"
  lambda_function_reserved_concurrent_executions = "1"
  vpc_subnet_ids                                 = "${var.vpc_subnet_ids}"
  vpc_security_group_ids                         = "${var.vpc_security_group_ids}"
  cloudwatch_event_enabled                       = true
  cloudwatch_event_schedule                      = "${var.execution_rate}"
  datadog_function_destination_arn               = "arn:aws:lambda:us-east-1:437795906767:function:DatadogLambdaFunction"

  lambda_function_environment_variables = {
    Environment          = "${var.env}"
    NEO4J_URL            = "${var.neo4j_url}"
    NEO4J_MAX_RETRY_TIME = "${var.neo4j_max_retry_time}"
    LOGGER_DSN           = "${var.logger_dsn}"
  }
}
