@@ -6,7 +6,7 @@ terraform {
6
6
required_providers {
7
7
aws = {
8
8
source = " hashicorp/aws"
9
- version = " ~> 3.27 "
9
+ version = " ~> 5.0 "
10
10
}
11
11
}
12
12
@@ -103,15 +103,11 @@ resource "aws_lambda_function" "lambda_function" {
103
103
source_code_hash = data. archive_file . lambda_zip_file . output_base64sha256
104
104
handler = " app.handler"
105
105
role = aws_iam_role. lambda_iam_role . arn
106
- runtime = " nodejs16 .x"
106
+ runtime = " nodejs22 .x"
107
107
}
108
108
109
-
110
109
resource "aws_iam_role" "lambda_iam_role" {
111
- name_prefix = " LambdaSNSRole-"
112
- managed_policy_arns = [
113
- data . aws_iam_policy . lambda_basic_execution_role_policy . arn
114
- ]
110
+ name_prefix = " LambdaSNSRole-"
115
111
116
112
assume_role_policy = << EOF
117
113
{
@@ -130,6 +126,11 @@ resource "aws_iam_role" "lambda_iam_role" {
130
126
EOF
131
127
}
132
128
129
+ resource "aws_iam_role_policy_attachment" "lambda_basic_execution" {
130
+ role = aws_iam_role. lambda_iam_role . name
131
+ policy_arn = data. aws_iam_policy . lambda_basic_execution_role_policy . arn
132
+ }
133
+
133
134
resource "aws_lambda_permission" "with_sns" {
134
135
statement_id = " AllowExecutionFromSNS"
135
136
action = " lambda:InvokeFunction"
@@ -138,10 +139,6 @@ resource "aws_lambda_permission" "with_sns" {
138
139
source_arn = aws_sns_topic. MySNSTopic . arn
139
140
}
140
141
141
-
142
-
143
-
144
-
145
142
// ---------------------------------------------------------
146
143
// Output
147
144
// ---------------------------------------------------------
@@ -160,4 +157,4 @@ output "SNS-Topic-ARN" {
160
157
output "Lambda-function" {
161
158
value = aws_lambda_function. lambda_function . arn
162
159
description = " TopicSubscriberFunction function name"
163
- }
160
+ }
0 commit comments