diff --git a/README.md b/README.md index 4438b92..eea491b 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,9 @@ module "mediaconverter" { | [rules\_targets](#input\_rules\_targets) | event patterns for eventbridge rules | `list(map(any))` | `[]` | no | | [s3\_arns](#input\_s3\_arns) | list of s3 bucket arns which mediaconverter will need access | `list(string)` |
[| no | | [s3\_iam\_actions](#input\_s3\_iam\_actions) | list of actions to be attached to iam role for mediaconverter | `list(string)` |
"*"
]
[| no | +| [sqs\_fifo\_queue](#input\_sqs\_fifo\_queue) | boolean flag designating a fifo queue | `bool` | `false` | no | +| [sqs\_msg\_retention\_seconds](#input\_sqs\_msg\_retention\_seconds) | The number of seconds Amazon SQS retains a message. | `number` | `432000` | no | +| [sqs\_visibility\_timeout](#input\_sqs\_visibility\_timeout) | The visibility timeout for the queue | `number` | `15` | no | | [status](#input\_status) | A status of the queue. Valid values are ACTIVE or RESERVED. | `string` | `"ACTIVE"` | no | ## Outputs diff --git a/locals.tf b/locals.tf index 3015047..08a7933 100644 --- a/locals.tf +++ b/locals.tf @@ -22,16 +22,17 @@ locals { } ] - targets = length(var.rules_targets) == 0 ? { for rule in ["default-role"] : rule => [{ - name = "${var.queue_name}" - arn = module.sqs.queue_arn + name = "${var.queue_name}" + arn = module.sqs.queue_arn + message_group_id = var.sqs_fifo_queue ? "send-orders-to-fifo-sqs" : null }] } : { for rule in var.rules_targets : rule.rule_name => [{ - name = rule.target_name - arn = contains(keys(rule), "target_arn") ? rule.target_arn : module.sqs.queue_arn + name = rule.target_name + arn = contains(keys(rule), "target_arn") ? rule.target_arn : module.sqs.queue_arn + message_group_id = var.sqs_fifo_queue ? "send-orders-to-fifo-sqs" : null }] } } diff --git a/main.tf b/main.tf index 8e01f47..ede6c77 100644 --- a/main.tf +++ b/main.tf @@ -44,9 +44,13 @@ module "eventbridge" { } module "sqs" { - source = "dasmeta/modules/aws//modules/sqs" - version = "2.18.2" - create_iam_user = false + source = "dasmeta/modules/aws//modules/sqs" + version = "2.18.2" + create_iam_user = false + visibility_timeout_seconds = var.sqs_visibility_timeout + message_retention_seconds = var.sqs_msg_retention_seconds + + fifo_queue = var.sqs_fifo_queue name = var.queue_name } @@ -65,7 +69,7 @@ data "aws_iam_policy_document" "eventbridge_to_sqs" { condition { test = "ArnEquals" variable = "aws:SourceArn" - values = [module.eventbridge.eventbridge_bus_arn] + values = [for key, value in module.eventbridge.eventbridge_rule_arns : value] } } } diff --git a/tests/rules-targets-setup/main.tf b/tests/rules-targets-setup/main.tf index 7fadc9b..ac2807c 100644 --- a/tests/rules-targets-setup/main.tf +++ b/tests/rules-targets-setup/main.tf @@ -1,25 +1,27 @@ module "mediaconvert_queue" { source = "../../." - queue_name = "test-queue" + queue_name = "test-queue" + sqs_fifo_queue = true rules_targets = [ { - rule_name = "rule1" - target_name = "target1" - event_pattern = jsonencode({ + rule_name = "rule1" + target_name = "target1" + event_pattern = <
"s3:*",
"s3-object-lambda:*"
]