variables.tf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
variable "functions" {
  description = "Map of Lambda function definitions"
  type = map(object({
    name                           = string
    description                    = optional(string, "")
    runtime                        = string
    handler                        = string
    role_arn                       = string
    filename                       = optional(string, null)
    s3_bucket                      = optional(string, null)
    s3_key                         = optional(string, null)
    s3_object_version              = optional(string, null)
    image_uri                      = optional(string, null)
    architectures                  = optional(list(string), ["x86_64"])
    memory_size                    = optional(number, 128)
    timeout                        = optional(number, 30)
    reserved_concurrent_executions = optional(number, -1)
    publish                        = optional(bool, false)
    kms_key_arn                    = optional(string, null)
    environment                    = optional(map(string), {})
    layers                         = optional(list(string), [])
    # VPC config
    subnet_ids         = optional(list(string), [])
    security_group_ids = optional(list(string), [])
    # Tracing
    tracing_mode = optional(string, "PassThrough")
    # Event source mappings
    event_sources = optional(list(object({
      event_source_arn         = string
      batch_size               = optional(number, 10)
      starting_position        = optional(string, null)
      function_response_types  = optional(list(string), [])
      bisect_on_function_error = optional(bool, true)
    })), [])
  }))
  default = {}
}

variable "layers" {
  description = "Map of Lambda layer definitions"
  type = map(object({
    name                     = string
    description              = optional(string, "")
    filename                 = optional(string, null)
    s3_bucket                = optional(string, null)
    s3_key                   = optional(string, null)
    compatible_runtimes      = optional(list(string), [])
    compatible_architectures = optional(list(string), ["x86_64"])
  }))
  default = {}
}

variable "tags" {
  description = "Resource tags to apply to all resources"
  type        = map(string)
  default     = {}
}