-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tf
63 lines (56 loc) · 1.63 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* # ![AWS](aws-logo.png) S3 Trigger
*
* [![CI](https://github.com/figurate/terraform-aws-s3-trigger/actions/workflows/main.yml/badge.svg)](https://github.com/figurate/terraform-aws-s3-trigger/actions/workflows/main.yml)
*
*
* Purpose: Templates for S3 object triggers.
*/
data "aws_s3_bucket" "source" {
bucket = var.bucket
}
data "aws_sns_topic" "topics" {
count = length(var.topics)
name = var.topics[count.index]
}
data "aws_sqs_queue" "queues" {
count = length(var.queues)
name = var.queues[count.index]
}
data "aws_lambda_function" "lambda_functions" {
count = length(var.lambda_functions)
function_name = var.lambda_functions[count.index]
}
resource "aws_s3_bucket_notification" "trigger" {
bucket = data.aws_s3_bucket.source.id
dynamic "topic" {
for_each = data.aws_sns_topic.topics
content {
id = var.trigger_id
topic_arn = topic.value.arn
events = var.events
filter_prefix = var.filter_prefix
filter_suffix = var.filter_suffix
}
}
dynamic "queue" {
for_each = data.aws_sqs_queue.queues
content {
id = var.trigger_id
queue_arn = queue.value.arn
events = var.events
filter_prefix = var.filter_prefix
filter_suffix = var.filter_suffix
}
}
dynamic "lambda_function" {
for_each = data.aws_lambda_function.lambda_functions
content {
id = var.trigger_id
lambda_function_arn = lambda_function.value.arn
events = var.events
filter_prefix = var.filter_prefix
filter_suffix = var.filter_suffix
}
}
}