Skip to content

Commit a92de3e

Browse files
committed
fix(does-not-create-lambda-function-this): does not create lambda function this when criteria ignore image uri is met
1 parent 074fe6e commit a92de3e

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

main.tf

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ locals {
1919
s3_key = var.s3_existing_package != null ? try(var.s3_existing_package.key, null) : (var.store_on_s3 ? var.s3_prefix != null ? format("%s%s", var.s3_prefix, replace(local.archive_filename_string, "/^.*//", "")) : replace(local.archive_filename_string, "/^\\.//", "") : null)
2020
s3_object_version = var.s3_existing_package != null ? try(var.s3_existing_package.version_id, null) : (var.store_on_s3 ? try(aws_s3_object.lambda_package[0].version_id, null) : null)
2121

22+
lambda_used = var.ignore_image_uri ? aws_lambda_function.this[0] : aws_lambda_function.image_function[0]
23+
2224
}
2325

2426
resource "aws_lambda_function" "this" {
25-
count = local.create && var.create_function && !var.create_layer ? 1 : 0
27+
count = local.create && var.create_function && !var.create_layer && !var.ignore_image_uri? 1 : 0
2628

2729
function_name = var.function_name
2830
description = var.description
@@ -384,8 +386,8 @@ resource "aws_cloudwatch_log_group" "lambda" {
384386
resource "aws_lambda_provisioned_concurrency_config" "current_version" {
385387
count = local.create && var.create_function && !var.create_layer && var.provisioned_concurrent_executions > -1 ? 1 : 0
386388

387-
function_name = aws_lambda_function.this[0].function_name
388-
qualifier = aws_lambda_function.this[0].version
389+
function_name = local.lambda_used
390+
qualifier = local.lambda_used.version
389391

390392
provisioned_concurrent_executions = var.provisioned_concurrent_executions
391393
}
@@ -397,8 +399,8 @@ locals {
397399
resource "aws_lambda_function_event_invoke_config" "this" {
398400
for_each = { for k, v in local.qualifiers : k => v if v != null && local.create && var.create_function && !var.create_layer && var.create_async_event_config }
399401

400-
function_name = aws_lambda_function.this[0].function_name
401-
qualifier = each.key == "current_version" ? aws_lambda_function.this[0].version : null
402+
function_name = local.lambda_used.function_name
403+
qualifier = each.key == "current_version" ? local.lambda_used.version : null
402404

403405
maximum_event_age_in_seconds = var.maximum_event_age_in_seconds
404406
maximum_retry_attempts = var.maximum_retry_attempts
@@ -426,8 +428,8 @@ resource "aws_lambda_function_event_invoke_config" "this" {
426428
resource "aws_lambda_permission" "current_version_triggers" {
427429
for_each = { for k, v in var.allowed_triggers : k => v if local.create && var.create_function && !var.create_layer && var.create_current_version_allowed_triggers }
428430

429-
function_name = aws_lambda_function.this[0].function_name
430-
qualifier = aws_lambda_function.this[0].version
431+
function_name = local.lambda_used.function_name
432+
qualifier = local.lambda_used.version
431433

432434
statement_id_prefix = try(each.value.statement_id, each.key)
433435
action = try(each.value.action, "lambda:InvokeFunction")
@@ -446,7 +448,7 @@ resource "aws_lambda_permission" "current_version_triggers" {
446448
resource "aws_lambda_permission" "unqualified_alias_triggers" {
447449
for_each = { for k, v in var.allowed_triggers : k => v if local.create && var.create_function && !var.create_layer && var.create_unqualified_alias_allowed_triggers }
448450

449-
function_name = aws_lambda_function.this[0].function_name
451+
function_name = local.lambda_used.function_name
450452

451453
statement_id_prefix = try(each.value.statement_id, each.key)
452454
action = try(each.value.action, "lambda:InvokeFunction")
@@ -464,7 +466,7 @@ resource "aws_lambda_permission" "unqualified_alias_triggers" {
464466
resource "aws_lambda_event_source_mapping" "this" {
465467
for_each = { for k, v in var.event_source_mapping : k => v if local.create && var.create_function && !var.create_layer && var.create_unqualified_alias_allowed_triggers }
466468

467-
function_name = aws_lambda_function.this[0].arn
469+
function_name = local.lambda_used.arn
468470

469471
event_source_arn = try(each.value.event_source_arn, null)
470472

@@ -544,10 +546,10 @@ resource "aws_lambda_event_source_mapping" "this" {
544546
resource "aws_lambda_function_url" "this" {
545547
count = local.create && var.create_function && !var.create_layer && var.create_lambda_function_url ? 1 : 0
546548

547-
function_name = aws_lambda_function.this[0].function_name
549+
function_name = local.lambda_used.function_name
548550

549551
# Error: error creating Lambda Function URL: ValidationException
550-
qualifier = var.create_unqualified_alias_lambda_function_url ? null : aws_lambda_function.this[0].version
552+
qualifier = var.create_unqualified_alias_lambda_function_url ? null : local.lambda_used.version
551553
authorization_type = var.authorization_type
552554
invoke_mode = var.invoke_mode
553555

@@ -574,7 +576,7 @@ resource "null_resource" "sam_metadata_aws_lambda_function" {
574576
triggers = {
575577
# This is a way to let SAM CLI correlates between the Lambda function resource, and this metadata
576578
# resource
577-
resource_name = "aws_lambda_function.this[0]"
579+
resource_name = "local.lambda_used"
578580
resource_type = "ZIP_LAMBDA_FUNCTION"
579581

580582
# The Lambda function source code.

outputs.tf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Lambda Function
22
output "lambda_function_arn" {
33
description = "The ARN of the Lambda Function"
4-
value = try(aws_lambda_function.this[0].arn, "")
4+
value = try(local.lambda_used.arn, "")
55
}
66

77
output "lambda_function_arn_static" {
@@ -11,57 +11,57 @@ output "lambda_function_arn_static" {
1111

1212
output "lambda_function_invoke_arn" {
1313
description = "The Invoke ARN of the Lambda Function"
14-
value = try(aws_lambda_function.this[0].invoke_arn, "")
14+
value = try(local.lambda_used.invoke_arn, "")
1515
}
1616

1717
output "lambda_function_name" {
1818
description = "The name of the Lambda Function"
19-
value = try(aws_lambda_function.this[0].function_name, "")
19+
value = try(local.lambda_used.function_name, "")
2020
}
2121

2222
output "lambda_function_qualified_arn" {
2323
description = "The ARN identifying your Lambda Function Version"
24-
value = try(aws_lambda_function.this[0].qualified_arn, "")
24+
value = try(local.lambda_used.qualified_arn, "")
2525
}
2626

2727
output "lambda_function_qualified_invoke_arn" {
2828
description = "The Invoke ARN identifying your Lambda Function Version"
29-
value = try(aws_lambda_function.this[0].qualified_invoke_arn, "")
29+
value = try(local.lambda_used.qualified_invoke_arn, "")
3030
}
3131

3232
output "lambda_function_version" {
3333
description = "Latest published version of Lambda Function"
34-
value = try(aws_lambda_function.this[0].version, "")
34+
value = try(local.lambda_used.version, "")
3535
}
3636

3737
output "lambda_function_last_modified" {
3838
description = "The date Lambda Function resource was last modified"
39-
value = try(aws_lambda_function.this[0].last_modified, "")
39+
value = try(local.lambda_used.last_modified, "")
4040
}
4141

4242
output "lambda_function_kms_key_arn" {
4343
description = "The ARN for the KMS encryption key of Lambda Function"
44-
value = try(aws_lambda_function.this[0].kms_key_arn, "")
44+
value = try(local.lambda_used.kms_key_arn, "")
4545
}
4646

4747
output "lambda_function_source_code_hash" {
4848
description = "Base64-encoded representation of raw SHA-256 sum of the zip file"
49-
value = try(aws_lambda_function.this[0].source_code_hash, "")
49+
value = try(local.lambda_used.source_code_hash, "")
5050
}
5151

5252
output "lambda_function_source_code_size" {
5353
description = "The size in bytes of the function .zip file"
54-
value = try(aws_lambda_function.this[0].source_code_size, "")
54+
value = try(local.lambda_used.source_code_size, "")
5555
}
5656

5757
output "lambda_function_signing_job_arn" {
5858
description = "ARN of the signing job"
59-
value = try(aws_lambda_function.this[0].signing_job_arn, "")
59+
value = try(local.lambda_used.signing_job_arn, "")
6060
}
6161

6262
output "lambda_function_signing_profile_version_arn" {
6363
description = "ARN of the signing profile version"
64-
value = try(aws_lambda_function.this[0].signing_profile_version_arn, "")
64+
value = try(local.lambda_used.signing_profile_version_arn, "")
6565
}
6666

6767
# Lambda Function URL

0 commit comments

Comments
 (0)