125 lines
4.0 KiB
HCL
125 lines
4.0 KiB
HCL
module "dt-cdh-lambda" {
|
|
source = "../../../modules/lambda"
|
|
region = var.region
|
|
environment = var.environment
|
|
project = var.project
|
|
main_module = var.main_module
|
|
tags = var.tags
|
|
name = local.env.lambdaName
|
|
timeout = 900
|
|
additional_permissions = [
|
|
{
|
|
actions = ["S3:*"]
|
|
resources = [local.env.s3SourceLayerArn, "${local.env.s3SourceLayerArn}/*"]
|
|
}, {
|
|
actions = ["kms:GenerateDataKey", "kms:Decrypt"]
|
|
resources = [local.env.kmsKey]
|
|
}, {
|
|
actions = ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"]
|
|
resources = [module.lambda_secret_dt.secret_arn, module.lambda_secret_slo.secret_arn]
|
|
}
|
|
]
|
|
environment_vars = {
|
|
SOURCE_BUCKET = local.env.s3SourceLayer
|
|
ENV_SECRET_ARN = module.lambda_secret_dt.secret_arn
|
|
SLO_SECRET_ARN = module.lambda_secret_slo.secret_arn
|
|
}
|
|
description = ""
|
|
handler = "createReport.lambda_handler"
|
|
memory = 2048
|
|
path_to_function = "../../apps/cdh-maas/main/lambda_function"
|
|
runtime = "python3.9"
|
|
cron = {
|
|
hourly = {
|
|
schedule = "cron(0 2 * * ? *)"
|
|
payload = jsonencode( { target = "hourly" } )
|
|
description = "schedule: daily at 2:00am UTC"
|
|
}
|
|
daily = {
|
|
schedule = "cron(30 2 * * ? *)"
|
|
payload = jsonencode( { target = "daily" } )
|
|
description = "schedule: daily at 2:30am UTC"
|
|
}
|
|
weekly = {
|
|
schedule = "cron(0 3 ? * MON *)"
|
|
payload = jsonencode({ "target" = "weekly" })
|
|
description = "schedule: weekly at Monday 3:00am UTC"
|
|
}
|
|
monthly = {
|
|
schedule = "cron(30 3 1 * ? *)"
|
|
payload = jsonencode({ "target" = "monthly" })
|
|
description = "schedule: first day of each month at 3:30am UTC"
|
|
}
|
|
}
|
|
}
|
|
|
|
module "lambda_secret_dt" {
|
|
source = "../../../modules/secrets-manager"
|
|
region = var.region
|
|
environment = var.environment
|
|
project = var.project
|
|
main_module = var.main_module
|
|
tags = var.tags
|
|
kms_key_id = local.env.kmsKey
|
|
secret_name = local.env.secretNameForDT
|
|
module_enabled = true
|
|
}
|
|
|
|
module "lambda_secret_slo" {
|
|
source = "../../../modules/secrets-manager"
|
|
region = var.region
|
|
environment = var.environment
|
|
project = var.project
|
|
main_module = var.main_module
|
|
tags = var.tags
|
|
kms_key_id = local.env.kmsKey
|
|
secret_name = local.env.secretNameForSLO
|
|
module_enabled = true
|
|
}
|
|
|
|
module "dt-cdh-lambda-prepared" {
|
|
source = "../../../modules/lambda"
|
|
region = var.region
|
|
environment = var.environment
|
|
project = var.project
|
|
main_module = var.main_module
|
|
tags = var.tags
|
|
name = local.env.lambdaPreparedName
|
|
timeout = 900
|
|
reserved_concurrent_executions = 1
|
|
additional_permissions = [
|
|
{
|
|
actions = ["S3:*"]
|
|
resources = [
|
|
local.env.s3SourceLayerArn, "${local.env.s3SourceLayerArn}/*", local.env.s3PreparedLayerArn,
|
|
"${local.env.s3PreparedLayerArn}/*"
|
|
]
|
|
}, {
|
|
actions = ["kms:GenerateDataKey", "kms:Decrypt"]
|
|
resources = [local.env.kmsKey]
|
|
}, {
|
|
actions = ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"]
|
|
resources = [module.lambda_secret_dt.secret_arn, module.lambda_secret_slo.secret_arn]
|
|
}, {
|
|
actions = ["sns:Subscribe"]
|
|
resources = [local.env.snsSourceTopic]
|
|
}
|
|
]
|
|
environment_vars = {
|
|
SOURCE_BUCKET = local.env.s3SourceLayer
|
|
PREPARED_BUCKET = local.env.s3PreparedLayer
|
|
SLO_SECRET_ARN = module.lambda_secret_slo.secret_arn
|
|
}
|
|
description = ""
|
|
handler = "reformatData.lambda_handler"
|
|
memory = 2048
|
|
path_to_function = "../../apps/cdh-maas/main/lambda_prepared_layer"
|
|
runtime = "python3.9"
|
|
snsTrigger = {
|
|
source = {
|
|
topic = local.env.snsSourceTopic
|
|
}
|
|
}
|
|
|
|
|
|
} |