diff --git a/autotagging.tf b/autotagging.tf index 12c33ad..2cde2cb 100644 --- a/autotagging.tf +++ b/autotagging.tf @@ -49,8 +49,7 @@ resource "aws_sqs_queue" "auto_tagging" { } resource "aws_sns_topic_subscription" "auto_tagging" { - count = var.enable_auto_tagging == true ? var.sns_topic_arn == "" ? 0 : 1 : 0 - + count = var.enable_auto_tagging == true ? var.sns_topic_arn == "" ? 0 : 1 : 0 topic_arn = var.sns_topic_arn protocol = "sqs" endpoint = aws_sqs_queue.auto_tagging[0].arn diff --git a/glue_create.tf b/glue_create.tf index dbdb812..87c36b8 100644 --- a/glue_create.tf +++ b/glue_create.tf @@ -105,11 +105,12 @@ resource "aws_sqs_queue_redrive_allow_policy" "terraform_queue_redrive_allow_pol } resource "aws_sns_topic_subscription" "glue_create_sns_sub" { - count = var.enable_glue_create ? 1 : 0 - - topic_arn = var.glue_create_config.sns_topic_arn - protocol = "sqs" - endpoint = aws_sqs_queue.glue_create[0].arn + count = var.enable_glue_create ? 1 : 0 + filter_policy = var.glue_create_config.sns_subcription_filter_policy + filter_policy_scope = var.glue_create_config.filter_policy_scope + topic_arn = var.glue_create_config.sns_topic_arn + protocol = "sqs" + endpoint = aws_sqs_queue.glue_create[0].arn } data "aws_iam_policy_document" "glue_create_assume" { diff --git a/glue_sync.tf b/glue_sync.tf index 67dfb46..e65a256 100644 --- a/glue_sync.tf +++ b/glue_sync.tf @@ -69,11 +69,12 @@ resource "aws_sqs_queue_redrive_allow_policy" "glue_syncredrive_allow_policy" { } resource "aws_sns_topic_subscription" "glue_sync_sns_sub" { - count = var.enable_glue_sync ? 1 : 0 - - topic_arn = var.glue_sync_config.sns_topic_arn - protocol = "sqs" - endpoint = aws_sqs_queue.glue_sync[0].arn + count = var.enable_glue_sync ? 1 : 0 + filter_policy = var.glue_sync_config.sns_subcription_filter_policy + filter_policy_scope = var.glue_sync_config.filter_policy_scope + topic_arn = var.glue_sync_config.sns_topic_arn + protocol = "sqs" + endpoint = aws_sqs_queue.glue_sync[0].arn } data "aws_iam_policy_document" "glue_sync_assume" { diff --git a/main.tf b/main.tf index 5101ff3..7186054 100644 --- a/main.tf +++ b/main.tf @@ -263,8 +263,7 @@ resource "aws_sqs_queue" "this_DL" { } resource "aws_sns_topic_subscription" "this_sns_sub" { - count = var.sns_topic_arn == "" ? 0 : 1 - + count = var.sns_topic_arn == "" ? 0 : 1 topic_arn = var.sns_topic_arn protocol = "sqs" endpoint = local.enable_group_events ? aws_sqs_queue.group_events_lambda_sqs[0].arn : aws_sqs_queue.this_sqs[0].arn diff --git a/variables.tf b/variables.tf index b3c0502..1c8f442 100644 --- a/variables.tf +++ b/variables.tf @@ -291,18 +291,20 @@ variable "enable_schema_evolution" { variable "glue_create_config" { type = object({ - athena_workgroup_name = string // Name of AWS Athena workgroup - athena_data_source = string // Arn name of AWS Athena data source (catalog) - athena_bucket_name = string // name of AWS Athena bucket. - lambda_s3_key = string // lambda s3 key - lambda path on S3 and file name filename - lambda_s3_bucket = string // lambda s3 bucket where lambda is stored - lambda_function_name = string // lambda function name - path_regex = string // regexp for mapping s3 path to database/table - sns_topic_arn = string // sns topic arn with s3 events (source for lambda) - sqs_queue_name = string // name of sqs queue for glue-sync lambda - sqs_queue_name_dl = string // name dead letter sqs que with not processed s3 events - iam_role_name = string // lambda role name - iam_policy_name = string // lambda policy name + athena_workgroup_name = string // Name of AWS Athena workgroup + athena_data_source = string // Arn name of AWS Athena data source (catalog) + athena_bucket_name = string // name of AWS Athena bucket. + lambda_s3_key = string // lambda s3 key - lambda path on S3 and file name filename + lambda_s3_bucket = string // lambda s3 bucket where lambda is stored + lambda_function_name = string // lambda function name + path_regex = string // regexp for mapping s3 path to database/table + sns_topic_arn = string // sns topic arn with s3 events (source for lambda) + sqs_queue_name = string // name of sqs queue for glue-sync lambda + sqs_queue_name_dl = string // name dead letter sqs que with not processed s3 events + iam_role_name = string // lambda role name + iam_policy_name = string // lambda policy name + sns_subcription_filter_policy = string // sns subcription filter policy + filter_policy_scope = string // sns subcription filter policy scope }) description = "Configuration of glue-create lambda" } @@ -315,15 +317,17 @@ variable "enable_glue_sync" { variable "glue_sync_config" { type = object({ - lambda_s3_key = string // lambda s3 key - lambda path on S3 and file name filename - lambda_s3_bucket = string // lambda s3 bucket where lambda is stored - lambda_function_name = string // lambda function name - path_regex = string // regexp for mapping s3 path to database/table - sns_topic_arn = string // sns topic arn with s3 events (source for lambda) - sqs_queue_name = string // name of sqs queue for glue-sync lambda - sqs_queue_name_dl = string // name dead letter sqs que with not processed s3 events - iam_role_name = string // lambda role name - iam_policy_name = string // lambda policy name + lambda_s3_key = string // lambda s3 key - lambda path on S3 and file name filename + lambda_s3_bucket = string // lambda s3 bucket where lambda is stored + lambda_function_name = string // lambda function name + path_regex = string // regexp for mapping s3 path to database/table + sns_topic_arn = string // sns topic arn with s3 events (source for lambda) + sqs_queue_name = string // name of sqs queue for glue-sync lambda + sqs_queue_name_dl = string // name dead letter sqs que with not processed s3 events + iam_role_name = string // lambda role name + iam_policy_name = string // lambda policy name + sns_subcription_filter_policy = string // sns subcription filter policy + filter_policy_scope = string // sns subcription filter policy scope }) description = "Configuration of glue-sync lambda" }