resource "aws_cloudwatch_log_group" "wo_email_processor" { name = "/aws/lambda/workorder-email-processor" retention_in_days = 60 lifecycle { prevent_destroy = true } } resource "aws_cloudwatch_log_group" "wo_web_ui" { name = "/aws/lambda/workorder-web-ui" retention_in_days = 60 lifecycle { prevent_destroy = true } } resource "aws_lambda_function" "wo_email_processor" { function_name = "workorder-email-processor" role = aws_iam_role.wo_email_processor.arn handler = "handler.handler" runtime = "python3.12" architectures = ["arm64"] memory_size = 256 timeout = 60 s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.lambda["wo_email_processor"].key source_code_hash = data.archive_file.lambda["wo_email_processor"].output_base64sha256 dead_letter_config { target_arn = aws_sqs_queue.wo_email_processor_dlq.arn } environment { variables = { WORK_ORDERS_TABLE = aws_dynamodb_table.work_orders_kebab.name COMMENTS_TABLE = aws_dynamodb_table.work_order_comments_kebab.name ALLOWED_DKIM_DOMAINS = "seahaven.com" BEDROCK_MODEL_ID = local.bedrock_model_id } } depends_on = [ aws_s3_object.lambda, aws_cloudwatch_log_group.wo_email_processor, aws_iam_role_policy_attachment.wo_email_processor_basic, aws_iam_role_policy.wo_email_processor_s3, aws_iam_role_policy.wo_email_processor_ddb, aws_iam_role_policy.wo_email_processor_bedrock, aws_iam_role_policy.wo_email_processor_dlq, ] } resource "aws_lambda_function" "wo_web_ui" { function_name = "workorder-web-ui" role = aws_iam_role.wo_web_ui.arn handler = "handler.handler" runtime = "python3.12" architectures = ["arm64"] memory_size = 128 timeout = 15 s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.lambda["wo_web_ui"].key source_code_hash = data.archive_file.lambda["wo_web_ui"].output_base64sha256 environment { variables = { WORK_ORDERS_TABLE = aws_dynamodb_table.work_orders_kebab.name COMMENTS_TABLE = aws_dynamodb_table.work_order_comments_kebab.name WEB_UI_AUTH_TOKEN_SECRET_ARN = var.web_ui_auth_token_secret_arn } } depends_on = [ aws_s3_object.lambda, aws_cloudwatch_log_group.wo_web_ui, aws_iam_role_policy_attachment.wo_web_ui_basic, aws_iam_role_policy.wo_web_ui_ddb, aws_iam_role_policy.wo_web_ui_secrets, ] }