@@ -16,7 +16,7 @@ resource "aws_cloudwatch_log_group" "archive_logs" {
1616}
1717
1818resource "aws_iam_role" "archive_role" {
19- name = " ${ local . archive_lambda_name } -role"
19+ name = " ${ local . archive_lambda_name } -exec- role"
2020 assume_role_policy = jsonencode ({
2121 Version = " 2012-10-17"
2222 Statement = [
@@ -32,7 +32,7 @@ resource "aws_iam_role" "archive_role" {
3232}
3333
3434resource "aws_iam_policy" "archive_lambda_policy" {
35- name = " ${ local . archive_lambda_name } -policy"
35+ name = " ${ local . archive_lambda_name } -logging- policy"
3636 policy = jsonencode ({
3737 Version = " 2012-10-17"
3838 Statement = [
@@ -51,7 +51,7 @@ resource "aws_iam_role_policy_attachment" "archive_lambda_policy_attach" {
5151}
5252
5353resource "aws_iam_policy" "archive_policy" {
54- name = " ${ local . archive_lambda_name } -policy"
54+ name = " ${ local . archive_lambda_name } -ddb-stream- policy"
5555 policy = jsonencode ({
5656 Version = " 2012-10-17"
5757 Statement = [
@@ -94,18 +94,19 @@ resource "aws_lambda_function" "api_lambda" {
9494}
9595
9696data "aws_dynamodb_table" "existing_tables" {
97- for_each = var. MonitorTables
97+ for_each = toset ( var. MonitorTables )
9898 name = each. key
9999}
100100
101101resource "aws_lambda_event_source_mapping" "stream_mapping" {
102- for_each = var. MonitorTables
102+ for_each = toset ( var. MonitorTables )
103103 function_name = aws_lambda_function. api_lambda . arn
104104 event_source_arn = data. aws_dynamodb_table . existing_tables [each . key ]. stream_arn
105105 function_response_types = [" ReportBatchItemFailures" ]
106106 batch_size = 10
107107 enabled = true
108108 starting_position = " LATEST"
109+
109110 filter_criteria {
110111 filter {
111112 pattern = jsonencode ({
@@ -116,5 +117,6 @@ resource "aws_lambda_event_source_mapping" "stream_mapping" {
116117 })
117118 }
118119 }
120+
119121 depends_on = [aws_iam_policy . archive_policy ]
120122}
0 commit comments