@@ -19,10 +19,12 @@ locals {
19
19
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 )
20
20
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 )
21
21
22
+ lambda_used = var. ignore_image_uri ? aws_lambda_function. this [0 ] : aws_lambda_function. image_function [0 ]
23
+
22
24
}
23
25
24
26
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
26
28
27
29
function_name = var. function_name
28
30
description = var. description
@@ -384,8 +386,8 @@ resource "aws_cloudwatch_log_group" "lambda" {
384
386
resource "aws_lambda_provisioned_concurrency_config" "current_version" {
385
387
count = local. create && var. create_function && ! var. create_layer && var. provisioned_concurrent_executions > - 1 ? 1 : 0
386
388
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
389
391
390
392
provisioned_concurrent_executions = var. provisioned_concurrent_executions
391
393
}
@@ -397,8 +399,8 @@ locals {
397
399
resource "aws_lambda_function_event_invoke_config" "this" {
398
400
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 }
399
401
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
402
404
403
405
maximum_event_age_in_seconds = var. maximum_event_age_in_seconds
404
406
maximum_retry_attempts = var. maximum_retry_attempts
@@ -426,8 +428,8 @@ resource "aws_lambda_function_event_invoke_config" "this" {
426
428
resource "aws_lambda_permission" "current_version_triggers" {
427
429
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 }
428
430
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
431
433
432
434
statement_id_prefix = try (each. value . statement_id , each. key )
433
435
action = try (each. value . action , " lambda:InvokeFunction" )
@@ -446,7 +448,7 @@ resource "aws_lambda_permission" "current_version_triggers" {
446
448
resource "aws_lambda_permission" "unqualified_alias_triggers" {
447
449
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 }
448
450
449
- function_name = aws_lambda_function . this [ 0 ] . function_name
451
+ function_name = local . lambda_used . function_name
450
452
451
453
statement_id_prefix = try (each. value . statement_id , each. key )
452
454
action = try (each. value . action , " lambda:InvokeFunction" )
@@ -464,7 +466,7 @@ resource "aws_lambda_permission" "unqualified_alias_triggers" {
464
466
resource "aws_lambda_event_source_mapping" "this" {
465
467
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 }
466
468
467
- function_name = aws_lambda_function . this [ 0 ] . arn
469
+ function_name = local . lambda_used . arn
468
470
469
471
event_source_arn = try (each. value . event_source_arn , null )
470
472
@@ -544,10 +546,10 @@ resource "aws_lambda_event_source_mapping" "this" {
544
546
resource "aws_lambda_function_url" "this" {
545
547
count = local. create && var. create_function && ! var. create_layer && var. create_lambda_function_url ? 1 : 0
546
548
547
- function_name = aws_lambda_function . this [ 0 ] . function_name
549
+ function_name = local . lambda_used . function_name
548
550
549
551
# 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
551
553
authorization_type = var. authorization_type
552
554
invoke_mode = var. invoke_mode
553
555
@@ -574,7 +576,7 @@ resource "null_resource" "sam_metadata_aws_lambda_function" {
574
576
triggers = {
575
577
# This is a way to let SAM CLI correlates between the Lambda function resource, and this metadata
576
578
# resource
577
- resource_name = " aws_lambda_function.this[0] "
579
+ resource_name = " local.lambda_used "
578
580
resource_type = " ZIP_LAMBDA_FUNCTION"
579
581
580
582
# The Lambda function source code.
0 commit comments