File tree Expand file tree Collapse file tree 3 files changed +24
-14
lines changed
lambda-ssm-parameter-terraform Expand file tree Collapse file tree 3 files changed +24
-14
lines changed Original file line number Diff line number Diff line change 1+ lambda.zip
Original file line number Diff line number Diff 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
5252resource "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" {
7369EOF
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+
7682data "aws_iam_policy_document" "lambda_policy_document" {
7783 statement {
78-
84+
7985 effect = " Allow"
80-
86+
8187 actions = [
8288 " ssm:GetParameter" ,
8389 " ssm:PutParameter"
Original file line number Diff line number Diff line change 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
1215exports . 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+ }
You can’t perform that action at this time.
0 commit comments