Skip to content

Commit 3f62ddc

Browse files
authored
Merge pull request #2814 from kakakakakku/lambda-ssm-parameter-terraform
lambda-ssm-parameter-terraform: Update runtime to nodejs22.x
2 parents e9e94d3 + 6ee3408 commit 3f62ddc

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lambda.zip

lambda-ssm-parameter-terraform/main.tf

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
aws = {
44
source = "hashicorp/aws"
5-
version = "~> 4.22"
5+
version = "~> 5.0"
66
}
77
}
88

@@ -31,7 +31,7 @@ resource "aws_lambda_function" "lambda_function" {
3131
source_code_hash = data.archive_file.lambda_zip_file.output_base64sha256
3232
handler = "app.handler"
3333
role = aws_iam_role.lambda_iam_role.arn
34-
runtime = "nodejs16.x"
34+
runtime = "nodejs22.x"
3535
environment {
3636
variables = {
3737
SSMParameterName = var.ssm_parameter_name
@@ -50,11 +50,7 @@ data "aws_iam_policy" "lambda_basic_execution_role_policy" {
5050
}
5151

5252
resource "aws_iam_role" "lambda_iam_role" {
53-
name_prefix = "LambdaSSMParameterRole-"
54-
managed_policy_arns = [
55-
data.aws_iam_policy.lambda_basic_execution_role_policy.arn,
56-
aws_iam_policy.lambda_policy.arn
57-
]
53+
name_prefix = "LambdaSSMParameterRole-"
5854

5955
assume_role_policy = <<EOF
6056
{
@@ -73,11 +69,21 @@ resource "aws_iam_role" "lambda_iam_role" {
7369
EOF
7470
}
7571

72+
resource "aws_iam_role_policy_attachment" "lambda_basic_execution" {
73+
role = aws_iam_role.lambda_iam_role.name
74+
policy_arn = data.aws_iam_policy.lambda_basic_execution_role_policy.arn
75+
}
76+
77+
resource "aws_iam_role_policy_attachment" "lambda_ssm" {
78+
role = aws_iam_role.lambda_iam_role.name
79+
policy_arn = aws_iam_policy.lambda_policy.arn
80+
}
81+
7682
data "aws_iam_policy_document" "lambda_policy_document" {
7783
statement {
78-
84+
7985
effect = "Allow"
80-
86+
8187
actions = [
8288
"ssm:GetParameter",
8389
"ssm:PutParameter"

lambda-ssm-parameter-terraform/src/app.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66
// 2. GET or PUT an SSM Parameter Store parameter.
77
// 3. Return a response with parameter result.
88

9-
const AWS = require("aws-sdk")
10-
const ssm = new AWS.SSM()
9+
const { SSMClient, GetParameterCommand, PutParameterCommand } = require('@aws-sdk/client-ssm')
10+
11+
const ssmClient = new SSMClient({
12+
region: process.env.AWS_REGION
13+
})
1114

1215
exports.handler = async (event, context) => {
1316
try {
@@ -34,12 +37,12 @@ exports.handler = async (event, context) => {
3437
Overwrite: true,
3538
Type: "String",
3639
};
37-
result = await ssm.putParameter(ssmPutParams).promise()
40+
result = await ssmClient.send(new PutParameterCommand(ssmPutParams))
3841
} else if (method == "GET") {
3942
const ssmGetParams = {
4043
Name: parameterName,
4144
};
42-
result = await ssm.getParameter(ssmGetParams).promise()
45+
result = await ssmClient.send(new GetParameterCommand(ssmGetParams))
4346
} else {
4447
result = "Method not supported"
4548
}
@@ -57,4 +60,4 @@ exports.handler = async (event, context) => {
5760
console.error(error);
5861
throw new Error(error);
5962
}
60-
}
63+
}

0 commit comments

Comments
 (0)