Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Module - Lambda

This module is treated as internal module, breaking changes will not trigger a major release bump.

Generica module to create lambda functions

Requirements

Name Version
terraform >= 1.3.0
aws >= 5.27

Providers

Name Version
aws >= 5.27

Modules

No modules.

Resources

Name Type
aws_cloudwatch_log_group.main resource
aws_iam_role.main resource
aws_iam_role_policy.lambda_logging resource
aws_iam_role_policy.xray resource
aws_iam_role_policy_attachment.vpc_execution_role resource
aws_lambda_function.main resource
aws_iam_policy_document.lambda_assume_role_policy data source
aws_iam_policy_document.lambda_xray data source

Inputs

Name Description Type Default Required
lambda Configuration for the lambda function.

aws_partition: Partition for the base arn if not 'aws'
architecture: AWS Lambda architecture. Lambda functions using Graviton processors ('arm64') tend to have better price/performance than 'x86_64' functions.
environment_variables: Environment variables for the lambda.
handler: The entrypoint for the lambda.
principals: Add extra principals to the role created for execution of the lambda, e.g. for local testing.
lambda_tags: Map of tags that will be added to created resources. By default resources will be tagged with name and environment.
log_level: Logging level for lambda logging. Valid values are 'silly', 'trace', 'debug', 'info', 'warn', 'error', 'fatal'.
logging_kms_key_id: Specifies the kms key id to encrypt the logs with
logging_retention_in_days: Specifies the number of days you want to retain log events for the lambda log group. Possible values are: 0, 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653.
memory_size: Memory size linit in MB of the lambda.
metrics_namespace: Namespace for the metrics emitted by the lambda.
name: The name of the lambda function.
prefix: The prefix used for naming resources.
role_path: The path that will be added to the role, if not set the environment name will be used.
role_permissions_boundary: Permissions boundary that will be added to the created role for the lambda.
runtime: AWS Lambda runtime.
s3_bucket: S3 bucket from which to specify lambda functions. This is an alternative to providing local files directly.
s3_key: S3 key for syncer lambda function. Required if using S3 bucket to specify lambdas.
s3_object_version: S3 object version for syncer lambda function. Useful if S3 versioning is enabled on source bucket.
security_group_ids: List of security group IDs associated with the Lambda function.
subnet_ids: List of subnets in which the action runners will be launched, the subnets needs to be subnets in the vpc_id.
tags: Map of tags that will be added to created resources. By default resources will be tagged with name and environment.
timeout: Time out of the lambda in seconds.
tracing_config: Configuration for lambda tracing.
zip: File location of the lambda zip file.
object({
aws_partition = optional(string, "aws")
architecture = optional(string, "arm64")
environment_variables = optional(map(string), {})
handler = string
lambda_tags = optional(map(string), {})
log_level = optional(string, "info")
logging_kms_key_id = optional(string, null)
logging_retention_in_days = optional(number, 180)
memory_size = optional(number, 256)
metrics_namespace = optional(string, "GitHub Runners")
name = string
prefix = optional(string, null)
principals = optional(list(object({
type = string
identifiers = list(string)
})), [])
role_path = optional(string, null)
role_permissions_boundary = optional(string, null)
runtime = optional(string, "nodejs22.x")
s3_bucket = optional(string, null)
s3_key = optional(string, null)
s3_object_version = optional(string, null)
security_group_ids = optional(list(string), [])
subnet_ids = optional(list(string), [])
tags = optional(map(string), {})
timeout = optional(number, 60)
tracing_config = optional(object({
mode = optional(string, null)
capture_http_requests = optional(bool, false)
capture_error = optional(bool, false)
}), {})
zip = optional(string, null)
})
n/a yes

Outputs

Name Description
lambda n/a