Skip to content

Commit 68fa0f1

Browse files
Karthikeyannhseddalmond1
authored andcommitted
Lambda versioning for provisioned concurrancy (#309)
* lambda versioning for provisioned concurrency * dlq is not for RequestResponse (sync) * checkov skip for dlq
1 parent 65c13cf commit 68fa0f1

File tree

6 files changed

+8
-83
lines changed

6 files changed

+8
-83
lines changed
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
11
data "aws_caller_identity" "current" {}
2-
3-
data "aws_lambda_function" "existing" {
4-
function_name = var.lambda_func_name
5-
qualifier = "$LATEST"
6-
}

infrastructure/modules/lambda/lambda.tf

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
resource "aws_lambda_function" "eligibility_signposting_lambda" {
2+
#checkov:skip=CKV_AWS_116: No deadletter queue is configured for this Lambda function, as the requests are synchronous
23
#checkov:skip=CKV_AWS_115: Concurrent execution limit will be set at APIM level, not at Lambda level
34
#checkov:skip=CKV_AWS_272: Skipping code signing but flagged to create ticket to investigate on ELI-238
45
# If the file is not in the current working directory you will need to include a
@@ -27,15 +28,13 @@ resource "aws_lambda_function" "eligibility_signposting_lambda" {
2728

2829
kms_key_arn = aws_kms_key.lambda_cmk.arn
2930

31+
publish = true
32+
3033
vpc_config {
3134
subnet_ids = var.vpc_intra_subnets
3235
security_group_ids = var.security_group_ids
3336
}
3437

35-
dead_letter_config {
36-
target_arn = aws_sqs_queue.lambda_dlq.arn
37-
}
38-
3938
layers = compact([
4039
var.environment == "prod" ? "arn:aws:lambda:${var.region}:580247275435:layer:LambdaInsightsExtension:${var.lambda_insights_extension_version}" : null
4140
])
@@ -49,14 +48,8 @@ resource "aws_lambda_function" "eligibility_signposting_lambda" {
4948
resource "aws_lambda_alias" "campaign_alias" {
5049
count = var.environment == "prod" ? 1 : 0
5150
name = "live"
52-
function_name = coalesce(
53-
aws_lambda_function.eligibility_signposting_lambda.function_name,
54-
data.aws_lambda_function.existing.function_name
55-
)
56-
function_version = coalesce(
57-
aws_lambda_function.eligibility_signposting_lambda.version,
58-
data.aws_lambda_function.existing.version
59-
)
51+
function_name = aws_lambda_function.eligibility_signposting_lambda.function_name
52+
function_version = aws_lambda_function.eligibility_signposting_lambda.version
6053
}
6154

6255
# provisioned concurrency - number of pre-warmed lambda containers
@@ -66,3 +59,4 @@ resource "aws_lambda_provisioned_concurrency_config" "campaign_pc" {
6659
qualifier = aws_lambda_alias.campaign_alias[0].name
6760
provisioned_concurrent_executions = var.provisioned_concurrency_count
6861
}
62+

infrastructure/modules/lambda/sqs.tf

Lines changed: 0 additions & 23 deletions
This file was deleted.

infrastructure/stacks/api-layer/assumed_role_permissions_boundary.tf

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,7 @@ data "aws_iam_policy_document" "assumed_role_permissions_boundary" {
5252

5353
# X-Ray - Lambda tracing
5454
"xray:PutTraceSegments",
55-
"xray:PutTelemetryRecords",
56-
57-
#SQS - message management
58-
"sqs:SendMessage"
55+
"xray:PutTelemetryRecords"
5956
]
6057

6158
resources = ["*"]

infrastructure/stacks/iams-developer-roles/github_actions_policies.tf

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -550,32 +550,6 @@ resource "aws_iam_policy" "cloudwatch_management" {
550550
tags = merge(local.tags, { Name = "cloudwatch-management" })
551551
}
552552

553-
# SQS Management Policy for GetQueueAttributes
554-
resource "aws_iam_policy" "sqs_management" {
555-
name = "sqs-management"
556-
description = "Policy granting permissions to get SQS queue attributes"
557-
path = "/service-policies/"
558-
559-
policy = jsonencode({
560-
Version = "2012-10-17",
561-
Statement = [
562-
{
563-
Effect = "Allow",
564-
Action = [
565-
"sqs:GetQueueAttributes",
566-
"sqs:listqueuetags",
567-
"sqs:createqueue"
568-
],
569-
Resource = [
570-
"arn:aws:sqs:eu-west-2:${data.aws_caller_identity.current.account_id}:*"
571-
]
572-
}
573-
]
574-
})
575-
576-
tags = merge(local.tags, { Name = "sqs-management" })
577-
}
578-
579553
# Attach the policies to the role
580554
resource "aws_iam_role_policy_attachment" "terraform_state" {
581555
role = aws_iam_role.github_actions.name
@@ -621,9 +595,3 @@ resource "aws_iam_role_policy_attachment" "cloudwatch_management" {
621595
role = aws_iam_role.github_actions.name
622596
policy_arn = aws_iam_policy.cloudwatch_management.arn
623597
}
624-
625-
resource "aws_iam_role_policy_attachment" "sqs_management" {
626-
role = aws_iam_role.github_actions.name
627-
policy_arn = aws_iam_policy.sqs_management.arn
628-
}
629-

infrastructure/stacks/iams-developer-roles/iams_permissions_boundary.tf

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,7 @@ data "aws_iam_policy_document" "permissions_boundary" {
221221
"ssm:GetParameters",
222222
"ssm:ListTagsForResource",
223223
"ssm:PutParameter",
224-
"ssm:AddTagsToResource",
225-
226-
#SQS - message management
227-
"sqs:SendMessage",
228-
"sqs:GetQueueAttributes",
229-
"sqs:listqueuetags",
230-
"sqs:createqueue"
224+
"ssm:AddTagsToResource"
231225
]
232226

233227
resources = ["*"]

0 commit comments

Comments
 (0)