Skip to content

Commit 180ae42

Browse files
committed
add event mapping option
1 parent 9a9868c commit 180ae42

File tree

6 files changed

+47
-20
lines changed

6 files changed

+47
-20
lines changed

infrastructure/terraform/modules/backend-api/module_lambda_send_letter_proof.tf

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ module "lambda_send_letter_proof" {
77
source_code_hash = module.build_sftp_letters_lambdas.zips["src/send-proof.ts"].base64sha256
88
handler = "send-proof.handler"
99

10-
memory_size = 512
11-
timout_seconds = 20
10+
memory_size = 512
11+
timeout = 20
1212

1313
log_retention_in_days = var.log_retention_in_days
1414

@@ -27,6 +27,14 @@ module "lambda_send_letter_proof" {
2727
TEMPLATES_TABLE_NAME = aws_dynamodb_table.templates.name
2828
}
2929

30+
sqs_event_source_mapping = {
31+
sqs_queue_arn = module.sqs_validate_letter_template_files.sqs_queue_arn
32+
batch_size = 5
33+
scaling_config = {
34+
maximum_concurrency = 5
35+
}
36+
}
37+
3038
vpc = {
3139
id = data.aws_vpc.account_vpc.id
3240
cidr_block = data.aws_vpc.account_vpc.cidr_block
@@ -146,17 +154,3 @@ data "aws_iam_policy_document" "send_letter_proof" {
146154
]
147155
}
148156
}
149-
150-
resource "aws_lambda_event_source_mapping" "trigger_send_proof" {
151-
event_source_arn = module.sftp_upload_queue.sqs_queue_arn
152-
enabled = true
153-
function_name = "${local.csi}-send-letter-proof"
154-
batch_size = 10
155-
function_response_types = [
156-
"ReportBatchItemFailures"
157-
]
158-
159-
scaling_config {
160-
maximum_concurrency = 5
161-
}
162-
}

infrastructure/terraform/modules/backend-api/module_sqs_sftp_upload_queue.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module "sftp_upload_queue" {
1010

1111
sqs_kms_key_arn = var.kms_key_arn
1212

13-
visibility_timeout_seconds = 60
13+
visibility_timeout = 60
1414

1515
create_dlq = true
1616
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
resource "aws_lambda_event_source_mapping" "sqs" {
2+
count = var.sqs_event_source_mapping != null ? 1 : 0
3+
4+
event_source_arn = var.sqs_event_source_mapping.sqs_queue_arn
5+
function_name = aws_lambda_function.main.arn
6+
batch_size = var.sqs_event_source_mapping.batch_size
7+
maximum_batching_window_in_seconds = var.sqs_event_source_mapping.maximum_batching_window_in_seconds
8+
function_response_types = [
9+
"ReportBatchItemFailures"
10+
]
11+
12+
dynamic "scaling_config" {
13+
for_each = var.sqs_event_source_mapping.scaling_config != null ? [var.sqs_event_source_mapping.scaling_config] : []
14+
15+
content {
16+
maximum_concurrency = scaling_config.value.maximum_concurrency
17+
}
18+
}
19+
}

infrastructure/terraform/modules/lambda-function/lambda_function_main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ resource "aws_lambda_function" "main" {
77
handler = var.handler
88
runtime = var.runtime
99
memory_size = var.memory_size
10-
timeout = var.timeout_seconds
10+
timeout = var.timeout
1111

1212
environment {
1313
variables = var.environment_variables

infrastructure/terraform/modules/lambda-function/variables.tf

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ variable "runtime" {
3535
default = "nodejs20.x"
3636
}
3737

38-
variable "timout_seconds" {
38+
variable "timeout" {
3939
type = number
4040
description = "Maximum running time before timeout"
4141
default = 3
@@ -79,3 +79,16 @@ variable "security_group_ids" {
7979
type = list(string)
8080
default = []
8181
}
82+
83+
variable "sqs_event_source_mapping" {
84+
description = "Configuration for SQS event source mapping"
85+
type = object({
86+
sqs_queue_arn = string
87+
batch_size = optional(number, 10)
88+
maximum_batching_window_in_seconds = optional(number, 0)
89+
scaling_config = optional(object({
90+
maximum_concurrency = number
91+
}), null)
92+
})
93+
default = null
94+
}

utils/entity-update-command-builder/src/types/template.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ export type MergedTemplate = {
1818
id: string;
1919
language?: Language;
2020
letterType?: LetterType;
21+
lockTime?: number;
2122
message?: string;
23+
name: string;
2224
subject?: string;
2325
templateStatus: TemplateStatus;
2426
templateType: TemplateType;
2527
updatedAt: string;
26-
lockTime?: number;
2728
};
2829

2930
type AssertExtendsMerged<T extends MergedTemplate> = T;

0 commit comments

Comments
 (0)