Skip to content

ql4b/terraform-aws-lambda-layer

Repository files navigation

terraform-aws-lambda-layer

Terraform module for creating AWS Lambda layers with minimal configuration.

Usage

module "my_layer" {
  source = "./terraform-aws-lambda-layer"
  
  namespace = "myorg"
  name      = "shared-utils"
  
  source_dir = "./layer"
  
  compatible_runtimes      = ["provided.al2023", "python3.11"]
  compatible_architectures = ["arm64"]
  description             = "Shared utilities layer"
}

Examples

Basic Layer

module "utils_layer" {
  source = "./terraform-aws-lambda-layer"
  
  name       = "utils"
  source_dir = "./src/layer"
}

Pre-built ZIP

module "prebuilt_layer" {
  source = "./terraform-aws-lambda-layer"
  
  name     = "prebuilt"
  filename = "./dist/layer.zip"
}

Inputs

Name Description Type Default Required
source_dir Path to source directory containing layer code string null no
filename Path to pre-built zip file string null no
compatible_runtimes List of compatible runtimes list(string) ["provided.al2023"] no
compatible_architectures List of compatible architectures list(string) ["arm64"] no
description Layer description string null no
license_info License information string null no

Outputs

Name Description
layer_arn Lambda layer ARN
layer_version Lambda layer version
package_path Path to deployment package
ssm_parameters SSM parameter names for integration

Layer Structure

Your layer source directory should follow AWS Lambda layer conventions:

layer/
├── bin/           # Executables
├── lib/           # Libraries  
└── python/        # Python packages (if using Python runtime)

About

Terraform module for AWS Lambda layers with minimal configuration and flexible packaging options

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages