Terraform AWS Lambda Function
Terraform module to create and manage a AWS Lambda function created through either a zip archive or docker container image
module "lambda" {
source = " bitbucket.org/liveviewtech/terraform-aws-lambda.git?ref=v2"
name = local. project_id
filename = data. archive_file . function . output_path
source_code_hash = data. archive_file . function . output_base64sha256
handler = " function.handler"
runtime = " python3.9"
private_subnet_ids = module. acs . private_subnet_ids
security_groups = []
vpc_id = module. acs . vpc . id
environment_variables = {
NAME = " Steve"
}
secrets = {
SUPER_SECRET = aws_ssm_parameter.super_secret.name
}
role_permissions_boundary_arn = module. acs . role_permissions_boundary . arn
}
Lambda Function
Default Security Group
Lambda Layer to fetch SSM parameters
IAM Role
Includes policy to fetch SSM parameters if secrets are included
CloudWatch Log Group
Name
Description
Type
Default
Required
description
Description of your Lambda Function (or Layer)
string
""
no
environment_variables
A map that defines environment variables for the Lambda Function.
map(string)
{}
no
filename
The path to the function's deployment package within the local filesystem. If defined, The s3_-prefixed options and image_uri cannot be used.
string
""
no
handler
The function entrypoint in your code.
string
""
no
image_uri
The ECR image URI containing the function's deployment package.
string
""
no
layers
List of Lambda Layer Version ARNs (maximum of 4) to attach to the Lambda Function.
list(string)
[]
no
log_retention_in_days
CloudWatch log group retention in days. Defaults to 120.
number
120
no
memory_size
Amount of memory in MB your Lambda Function can use at runtime. Valid value between 128 MB to 10,240 MB (10 GB), in 64 MB increments.
number
128
no
name
Name for your lambda function
string
""
no
package_type
The Lambda deployment package type. Valid values are Zip and Image.
string
"Zip"
no
private_subnet_ids
List of subnet IDs for the fargate service.
list(string)
[]
no
role_permissions_boundary_arn
ARN of the IAM Role permissions boundary to place on each IAM role created.
string
""
no
runtime
The runtime environment for your function. (e.g. python3.9)
string
""
no
secrets
A map that defines secrets for the Lambda Function.
map(string)
{}
no
security_groups
List of extra security group IDs to attach to the function
list(string)
[]
no
source_code_hash
The path to your deployment package. Used to detect changes requiring re-provisioning
string
null
no
tags
A map of AWS Tags to attach to each resource created
map(string)
{}
no
timeout
The amount of time your Lambda Function has to run in seconds.
number
30
no
vpc_id
VPC ID
string
""
no
Name
Description
function_arn
The ARN of the Lambda Function
function_name
The name of the Lambda Function
role_arn
The ARN of the IAM role created for the Lambda Function
role_name
The name of the IAM role created for the Lambda Function