Skip to content

Commit de0cce4

Browse files
committed
Clone SNS Topic
1 parent 2d7ba85 commit de0cce4

6 files changed

Lines changed: 55 additions & 0 deletions

File tree

infrastructure/terraform/components/api/sns_topic_subscription_eventsub_sqs_letter_updates.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,9 @@ resource "aws_sns_topic_subscription" "eventsub_sqs_letter_updates" {
33
protocol = "sqs"
44
endpoint = module.sqs_letter_updates.sqs_queue_arn
55
}
6+
7+
resource "aws_sns_topic_subscription" "eventsub_sqs_letter_updates_clone" {
8+
topic_arn = module.eventsub.sns_topic_clone.arn
9+
protocol = "sqs"
10+
endpoint = module.sqs_letter_updates.sqs_queue_arn
11+
}

infrastructure/terraform/modules/eventsub/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
|------|-------------|
4242
| <a name="output_s3_bucket_event_cache"></a> [s3\_bucket\_event\_cache](#output\_s3\_bucket\_event\_cache) | S3 Bucket ARN and Name for event cache |
4343
| <a name="output_sns_topic"></a> [sns\_topic](#output\_sns\_topic) | SNS Topic ARN and Name |
44+
| <a name="output_sns_topic_clone"></a> [sns\_topic\_clone](#output\_sns\_topic\_clone) | SNS Topic ARN and Name |
4445
<!-- vale on -->
4546
<!-- markdownlint-enable -->
4647
<!-- END_TF_DOCS -->

infrastructure/terraform/modules/eventsub/outputs.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ output "sns_topic" {
66
}
77
}
88

9+
output "sns_topic_clone" {
10+
description = "SNS Topic ARN and Name"
11+
value = {
12+
arn = aws_sns_topic.main_clone.arn
13+
name = aws_sns_topic.main_clone.name
14+
}
15+
}
16+
917
output "s3_bucket_event_cache" {
1018
description = "S3 Bucket ARN and Name for event cache"
1119
value = var.enable_event_cache ? {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
resource "aws_sns_topic" "main_clone" {
2+
name = local.csi
3+
kms_master_key_id = var.kms_key_arn
4+
5+
application_failure_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
6+
application_success_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
7+
application_success_feedback_sample_rate = var.enable_sns_delivery_logging == true ? var.sns_success_logging_sample_percent : null
8+
9+
firehose_failure_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
10+
firehose_success_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
11+
firehose_success_feedback_sample_rate = var.enable_sns_delivery_logging == true ? var.sns_success_logging_sample_percent : null
12+
13+
http_failure_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
14+
http_success_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
15+
http_success_feedback_sample_rate = var.enable_sns_delivery_logging == true ? var.sns_success_logging_sample_percent : null
16+
17+
lambda_failure_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
18+
lambda_success_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
19+
lambda_success_feedback_sample_rate = var.enable_sns_delivery_logging == true ? var.sns_success_logging_sample_percent : null
20+
21+
sqs_failure_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
22+
sqs_success_feedback_role_arn = var.enable_sns_delivery_logging == true ? aws_iam_role.sns_delivery_logging_role[0].arn : null
23+
sqs_success_feedback_sample_rate = var.enable_sns_delivery_logging == true ? var.sns_success_logging_sample_percent : null
24+
}

infrastructure/terraform/modules/eventsub/sns_topic_policy.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ resource "aws_sns_topic_policy" "main" {
44
policy = data.aws_iam_policy_document.sns_topic_policy.json
55
}
66

7+
resource "aws_sns_topic_policy" "main_clone" {
8+
arn = aws_sns_topic.main_clone.arn
9+
10+
policy = data.aws_iam_policy_document.sns_topic_policy.json
11+
}
12+
713
data "aws_iam_policy_document" "sns_topic_policy" {
814
policy_id = "__default_policy_ID"
915

infrastructure/terraform/modules/eventsub/sns_topic_subscription_firehose.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,13 @@ resource "aws_sns_topic_subscription" "firehose" {
77
endpoint = aws_kinesis_firehose_delivery_stream.main[0].arn
88
raw_message_delivery = var.enable_firehose_raw_message_delivery
99
}
10+
11+
resource "aws_sns_topic_subscription" "firehose_clone" {
12+
count = var.enable_event_cache ? 1 : 0
13+
14+
topic_arn = aws_sns_topic.main_clone.arn
15+
protocol = "firehose"
16+
subscription_role_arn = aws_iam_role.sns_role.arn
17+
endpoint = aws_kinesis_firehose_delivery_stream.main[0].arn
18+
raw_message_delivery = var.enable_firehose_raw_message_delivery
19+
}

0 commit comments

Comments
 (0)