Skip to content

Commit f0be629

Browse files
Merge pull request #939 from NHSDigital/feature/made14-NRL-1379-add-lambda-errs-to-prod
[NRL-1379] Add TF config for lambda error notifications in test and prod
2 parents 404c175 + bf3e3b4 commit f0be629

File tree

10 files changed

+30
-8
lines changed

10 files changed

+30
-8
lines changed

terraform/account-wide-infrastructure/dev/locals.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ locals {
44
environment = terraform.workspace
55
prefix = "${local.project}--${local.environment}"
66

7-
notification_emails = nonsensitive(toset(tolist(jsondecode(data.aws_secretsmanager_secret_version.emails.secret_string))))
7+
notification_emails = tolist(jsondecode(data.aws_secretsmanager_secret_version.emails.secret_string))
88
}

terraform/account-wide-infrastructure/dev/secrets.tf

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ resource "aws_secretsmanager_secret" "backup_destination_parameters" {
77
description = "Parameters used to configure the backup destination"
88
}
99

10-
resource "aws_secretsmanager_secret" "notification_email_addresses" {
11-
name = "${local.prefix}-dev-notification-email-addresses"
12-
}
13-
1410
resource "aws_secretsmanager_secret" "dev_smoke_test_apigee_app" {
1511
name = "${local.prefix}--dev--apigee-app--smoke-test"
1612
description = "APIGEE App used to run Smoke Tests against the DEV environment"

terraform/account-wide-infrastructure/modules/lambda-errors-metric-alarm/sns.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ resource "aws_sns_topic" "sns_topic" {
44
}
55

66
resource "aws_sns_topic_subscription" "sns_subscription" {
7-
for_each = var.notification_emails
7+
count = length(var.notification_emails)
88
topic_arn = aws_sns_topic.sns_topic.arn
99
protocol = "email"
10-
endpoint = sensitive(each.value)
10+
endpoint = var.notification_emails[count.index]
1111
}

terraform/account-wide-infrastructure/modules/lambda-errors-metric-alarm/vars.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ variable "kms_deletion_window_in_days" {
2727
}
2828

2929
variable "notification_emails" {
30-
type = set(string)
30+
type = list(string)
31+
sensitive = true
3132
description = "The email addresses to which notifications will be sent."
3233
default = []
3334
}

terraform/account-wide-infrastructure/prod/cloudwatch.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ module "lambda_errors_cloudwatch_metric_alarm_dev" {
22
source = "../modules/lambda-errors-metric-alarm"
33
name_prefix = "nhsd-nrlf--prod"
44

5+
notification_emails = local.notification_emails
6+
57
evaluation_periods = 1
68
period = 60
79
threshold = 1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
data "aws_secretsmanager_secret_version" "identities_account_id" {
22
secret_id = aws_secretsmanager_secret.identities_account_id.name
33
}
4+
5+
data "aws_secretsmanager_secret" "emails" {
6+
name = "${local.prefix}-emails"
7+
}
8+
9+
data "aws_secretsmanager_secret_version" "emails" {
10+
secret_id = data.aws_secretsmanager_secret.emails.id
11+
}

terraform/account-wide-infrastructure/prod/locals.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ locals {
33
project = "nhsd-nrlf"
44
environment = terraform.workspace
55
prefix = "${local.project}--${local.environment}"
6+
7+
notification_emails = tolist(jsondecode(data.aws_secretsmanager_secret_version.emails.secret_string))
68
}

terraform/account-wide-infrastructure/test/cloudwatch.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ module "lambda_errors_cloudwatch_metric_alarm_dev" {
22
source = "../modules/lambda-errors-metric-alarm"
33
name_prefix = "nhsd-nrlf--test"
44

5+
notification_emails = local.notification_emails
6+
57
evaluation_periods = 1
68
period = 60
79
threshold = 1
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
data "aws_secretsmanager_secret_version" "identities_account_id" {
22
secret_id = aws_secretsmanager_secret.identities_account_id.name
33
}
4+
5+
6+
data "aws_secretsmanager_secret" "emails" {
7+
name = "${local.prefix}-emails"
8+
}
9+
10+
data "aws_secretsmanager_secret_version" "emails" {
11+
secret_id = data.aws_secretsmanager_secret.emails.id
12+
}

terraform/account-wide-infrastructure/test/locals.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ locals {
33
project = "nhsd-nrlf"
44
environment = terraform.workspace
55
prefix = "${local.project}--${local.environment}"
6+
7+
notification_emails = tolist(jsondecode(data.aws_secretsmanager_secret_version.emails.secret_string))
68
}

0 commit comments

Comments
 (0)