mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Merge branch 'main' into deploy-backend-with-terraform
This commit is contained in:
commit
e32b783b35
7 changed files with 61 additions and 10 deletions
|
|
@ -364,5 +364,5 @@ Here's what you should do:
|
|||
function.
|
||||
|
||||
By following these steps, you should have your custom domain properly configured and pointing to your AWS Lambda
|
||||
function via the CloudFront distribution.
|
||||
function via the CloudFront distribution
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ module "lambda" {
|
|||
maximum_concurrency = var.maximum_concurrency
|
||||
batch_size = var.batch_size
|
||||
|
||||
timeout = 120
|
||||
|
||||
environment = merge(
|
||||
{
|
||||
STAGE = var.stage
|
||||
|
|
|
|||
|
|
@ -24,8 +24,10 @@ module "lambda" {
|
|||
|
||||
image_uri = local.image_uri
|
||||
|
||||
# Optional: Set maximum_concurrency to limit concurrent SQS-triggered invocations (2-1000)
|
||||
maximum_concurrency = var.maximum_concurrency
|
||||
batch_size = var.batch_size
|
||||
timeout = var.timeout
|
||||
memory_size = var.memory_size
|
||||
|
||||
environment = merge(
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,6 +23,23 @@ variable "maximum_concurrency" {
|
|||
description = "Maximum number of concurrent Lambda invocations from SQS (2-1000). null = no limit."
|
||||
}
|
||||
|
||||
variable "batch_size" {
|
||||
type = number
|
||||
default = 1
|
||||
}
|
||||
|
||||
variable "timeout" {
|
||||
type = number
|
||||
default = 900
|
||||
description = "Lambda timeout in seconds"
|
||||
}
|
||||
|
||||
variable "memory_size" {
|
||||
type = number
|
||||
default = 3008
|
||||
description = "Lambda memory size in MB"
|
||||
}
|
||||
|
||||
variable "db_host" {
|
||||
type = string
|
||||
sensitive = true
|
||||
|
|
|
|||
|
|
@ -12,6 +12,35 @@ resource "aws_iam_user" "ses_user" {
|
|||
name = "${var.stage}-ses-user"
|
||||
}
|
||||
|
||||
# SES configuration set for tracking events
|
||||
resource "aws_ses_configuration_set" "this" {
|
||||
name = "${var.stage}-ses-config"
|
||||
}
|
||||
|
||||
# SNS topic for SES event notifications
|
||||
resource "aws_sns_topic" "ses_events" {
|
||||
name = "${var.stage}-ses-events"
|
||||
}
|
||||
|
||||
# SES event destination for debugging
|
||||
resource "aws_ses_event_destination" "sns" {
|
||||
name = "ses-event-destination"
|
||||
configuration_set_name = aws_ses_configuration_set.this.name
|
||||
enabled = true
|
||||
|
||||
matching_types = [
|
||||
"send",
|
||||
"bounce",
|
||||
"reject",
|
||||
"complaint",
|
||||
"delivery"
|
||||
]
|
||||
|
||||
sns_destination {
|
||||
topic_arn = aws_sns_topic.ses_events.arn
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_iam_user_policy" "ses_send_policy" {
|
||||
name = "AllowSESSendEmail"
|
||||
user = aws_iam_user.ses_user.name
|
||||
|
|
@ -20,8 +49,8 @@ resource "aws_iam_user_policy" "ses_send_policy" {
|
|||
Version = "2012-10-17"
|
||||
Statement = [
|
||||
{
|
||||
Effect = "Allow"
|
||||
Action = [
|
||||
Effect = "Allow"
|
||||
Action = [
|
||||
"ses:SendEmail",
|
||||
"ses:SendRawEmail"
|
||||
]
|
||||
|
|
@ -42,9 +71,9 @@ resource "aws_secretsmanager_secret" "ses_smtp" {
|
|||
}
|
||||
|
||||
resource "aws_secretsmanager_secret_version" "ses_smtp" {
|
||||
secret_id = aws_secretsmanager_secret.ses_smtp.id
|
||||
secret_id = aws_secretsmanager_secret.ses_smtp.id
|
||||
secret_string = jsonencode({
|
||||
username = aws_iam_access_key.ses_user.id
|
||||
password = aws_iam_access_key.ses_user.ses_smtp_password_v4
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,3 +7,4 @@ variable "stage" {
|
|||
description = "Deployment stage (e.g. dev, prod)"
|
||||
type = string
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,15 +28,15 @@ from sqlalchemy import func
|
|||
|
||||
# PORTFOLIO_ID = 206
|
||||
# SCENARIOS = [389]
|
||||
PORTFOLIO_ID = 597
|
||||
PORTFOLIO_ID = 581
|
||||
SCENARIOS = [
|
||||
1099
|
||||
1124
|
||||
]
|
||||
scenario_names = {
|
||||
1099: "£10k cost capped - no solid wall or floor",
|
||||
1124: "EPC C - Solar Focused",
|
||||
}
|
||||
|
||||
project_name = "Livespace Rentals"
|
||||
project_name = "WCHG EPC D rated properties"
|
||||
|
||||
|
||||
def get_data(portfolio_id, scenario_ids):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue