github.com/winebarrel/terraform-provider-lambdazip@v0.6.1-0.20240313233639-361839f8c5c5/examples/provider/provider.tf (about) 1 terraform { 2 required_providers { 3 lambdazip = { 4 source = "winebarrel/lambdazip" 5 version = ">= 0.5.0" 6 } 7 } 8 } 9 10 resource "lambdazip_file" "app" { 11 base_dir = "lambda" 12 sources = ["**"] 13 excludes = [".env"] 14 output = "lambda.zip" 15 before_create = "npm i" 16 17 triggers = { 18 for i in [ 19 "lambda/index.js", 20 "lambda/package.json", 21 "lambda/package-lock.json", 22 ] : i => filesha256(i) 23 } 24 } 25 26 resource "aws_lambda_function" "app" { 27 filename = lambdazip_file.app.output 28 function_name = "my_func" 29 role = aws_iam_role.lambda_app_role.arn 30 handler = "index.handler" 31 source_code_hash = lambdazip_file.app.base64sha256 32 runtime = "nodejs20.x" 33 } 34 35 resource "aws_iam_role" "lambda_app_role" { 36 name = "lambda-app-role" 37 38 assume_role_policy = jsonencode({ 39 Version = "2012-10-17" 40 Statement = [ 41 { 42 Effect = "Allow" 43 Principal = { 44 Service = "lambda.amazonaws.com" 45 } 46 Action = "sts:AssumeRole" 47 } 48 ] 49 }) 50 } 51 52 resource "aws_iam_role_policy_attachment" "lambda_app_role" { 53 role = aws_iam_role.lambda_app_role.name 54 policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" 55 }