-
Notifications
You must be signed in to change notification settings - Fork 5
/
main.tf
57 lines (50 loc) · 2.25 KB
/
main.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
resource "aws_lambda_function" "lambda" {
for_each = var.config != null ? var.config : {}
function_name = each.key
description = try(each.value.description, "Terraform managed : ${var.teamid}-${var.prjid}")
filename = each.value.output_path
source_code_hash = join("", [for sha in data.archive_file.zip : sha.output_base64sha256])
role = each.value.role
handler = each.value.handler
reserved_concurrent_executions = try(each.value.reserved_concurrent_executions, null)
runtime = try(each.value.runtime, null)
memory_size = try(each.value.memory_size, 128)
timeout = try(each.value.timeout, 30)
layers = try(each.value.layers, null)
kms_key_arn = try(each.value.kms_key_arn, null)
image_uri = try(each.value.image_uri, null)
package_type = try(each.value.package_type, "Zip")
tags = merge(local.shared_tags, var.extra_tags)
dynamic "environment" {
for_each = try(each.value.environment, null) == null ? [] : [each.value.environment]
content {
variables = environment.value.variables
}
}
dynamic "tracing_config" {
for_each = try(each.value.tracing_config, null) == null ? [] : [each.value.tracing_config]
content {
mode = tracing_config.value.mode
}
}
dynamic "vpc_config" {
for_each = try(each.value.vpc_config, null) == null ? [] : [each.value.vpc_config]
content {
security_group_ids = vpc_config.value.security_group_ids
subnet_ids = vpc_config.value.subnet_ids
}
}
dynamic "dead_letter_config" {
for_each = try(each.value.dead_letter_config, null) == null ? [] : [each.value.dead_letter_config]
content {
target_arn = dead_letter_config.value.target_arn
}
}
dynamic "file_system_config" {
for_each = try(each.value.file_system_arn, null) != null && try(each.value.file_system_local_mount_path, null) != null ? [true] : []
content {
local_mount_path = try(each.value.file_system_local_mount_path, null)
arn = try(each.value.file_system_arn, null)
}
}
}