Skip to content

Switch to name_prefix and allow quieting log out #609

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 35 additions & 35 deletions iam.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ locals {
# attempting to plan if the role_name and function_name are not set. This is a workaround
# for #83 that will allow one to import resources without receiving an error from coalesce.
# @see https://github.com/terraform-aws-modules/terraform-aws-lambda/issues/83
role_name = local.create_role ? coalesce(var.role_name, var.function_name, "*") : null
policy_name = coalesce(var.policy_name, local.role_name, "*")
role_name_prefix = local.create_role ? coalesce(var.role_name_prefix, var.function_name, "*") : null
policy_name_prefix = coalesce(var.policy_name_prefix, local.role_name_prefix, "*")

# IAM Role trusted entities is a list of any (allow strings (services) and maps (type+identifiers))
trusted_entities_services = distinct(compact(concat(
Expand Down Expand Up @@ -94,7 +94,7 @@ data "aws_iam_policy_document" "assume_role" {
resource "aws_iam_role" "lambda" {
count = local.create_role ? 1 : 0

name = local.role_name
name_prefix = local.role_name_prefix
description = var.role_description
path = var.role_path
force_detach_policies = var.role_force_detach_policies
Expand Down Expand Up @@ -134,10 +134,10 @@ data "aws_iam_policy_document" "logs" {
resource "aws_iam_policy" "logs" {
count = local.create_role && var.attach_cloudwatch_logs_policy ? 1 : 0

name = "${local.policy_name}-logs"
path = var.policy_path
policy = data.aws_iam_policy_document.logs[0].json
tags = var.tags
name_prefix = "${local.policy_name_prefix}-logs"
path = var.policy_path
policy = data.aws_iam_policy_document.logs[0].json
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "logs" {
Expand Down Expand Up @@ -171,10 +171,10 @@ data "aws_iam_policy_document" "dead_letter" {
resource "aws_iam_policy" "dead_letter" {
count = local.create_role && var.attach_dead_letter_policy ? 1 : 0

name = "${local.policy_name}-dl"
path = var.policy_path
policy = data.aws_iam_policy_document.dead_letter[0].json
tags = var.tags
name_prefix = "${local.policy_name_prefix}-dl"
path = var.policy_path
policy = data.aws_iam_policy_document.dead_letter[0].json
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "dead_letter" {
Expand All @@ -198,10 +198,10 @@ data "aws_iam_policy" "vpc" {
resource "aws_iam_policy" "vpc" {
count = local.create_role && var.attach_network_policy ? 1 : 0

name = "${local.policy_name}-vpc"
path = var.policy_path
policy = data.aws_iam_policy.vpc[0].policy
tags = var.tags
name_prefix = "${local.policy_name_prefix}-vpc"
path = var.policy_path
policy = data.aws_iam_policy.vpc[0].policy
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "vpc" {
Expand All @@ -225,10 +225,10 @@ data "aws_iam_policy" "tracing" {
resource "aws_iam_policy" "tracing" {
count = local.create_role && var.attach_tracing_policy ? 1 : 0

name = "${local.policy_name}-tracing"
path = var.policy_path
policy = data.aws_iam_policy.tracing[0].policy
tags = var.tags
name_prefix = "${local.policy_name_prefix}-tracing"
path = var.policy_path
policy = data.aws_iam_policy.tracing[0].policy
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "tracing" {
Expand Down Expand Up @@ -262,10 +262,10 @@ data "aws_iam_policy_document" "async" {
resource "aws_iam_policy" "async" {
count = local.create_role && var.attach_async_event_policy ? 1 : 0

name = "${local.policy_name}-async"
path = var.policy_path
policy = data.aws_iam_policy_document.async[0].json
tags = var.tags
name_prefix = "${local.policy_name_prefix}-async"
path = var.policy_path
policy = data.aws_iam_policy_document.async[0].json
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "async" {
Expand All @@ -282,10 +282,10 @@ resource "aws_iam_role_policy_attachment" "async" {
resource "aws_iam_policy" "additional_json" {
count = local.create_role && var.attach_policy_json ? 1 : 0

name = local.policy_name
path = var.policy_path
policy = var.policy_json
tags = var.tags
name_prefix = local.policy_name_prefix
path = var.policy_path
policy = var.policy_json
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "additional_json" {
Expand All @@ -302,10 +302,10 @@ resource "aws_iam_role_policy_attachment" "additional_json" {
resource "aws_iam_policy" "additional_jsons" {
count = local.create_role && var.attach_policy_jsons ? var.number_of_policy_jsons : 0

name = "${local.policy_name}-${count.index}"
path = var.policy_path
policy = var.policy_jsons[count.index]
tags = var.tags
name_prefix = "${local.policy_name_prefix}-${count.index}"
path = var.policy_path
policy = var.policy_jsons[count.index]
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "additional_jsons" {
Expand Down Expand Up @@ -386,10 +386,10 @@ data "aws_iam_policy_document" "additional_inline" {
resource "aws_iam_policy" "additional_inline" {
count = local.create_role && var.attach_policy_statements ? 1 : 0

name = "${local.policy_name}-inline"
path = var.policy_path
policy = data.aws_iam_policy_document.additional_inline[0].json
tags = var.tags
name_prefix = "${local.policy_name_prefix}-inline"
path = var.policy_path
policy = data.aws_iam_policy_document.additional_inline[0].json
tags = var.tags
}

resource "aws_iam_role_policy_attachment" "additional_inline" {
Expand Down
1 change: 1 addition & 0 deletions package.tf
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ resource "null_resource" "archive" {
"--timestamp", data.external.archive_prepare[0].result.timestamp
]
command = data.external.archive_prepare[0].result.build_plan_filename
quiet = var.quiet_local_exec
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This option is useful in some cases. PR is welcome if you have time.

}

depends_on = [local_file.archive_plan]
Expand Down
14 changes: 10 additions & 4 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -454,8 +454,8 @@ variable "cloudwatch_logs_tags" {
# IAM
######

variable "role_name" {
description = "Name of IAM role to use for Lambda Function"
variable "role_name_prefix" {
description = "Name prefix of IAM role to use for Lambda Function"
type = string
default = null
}
Expand Down Expand Up @@ -500,8 +500,8 @@ variable "role_maximum_session_duration" {
# Policies
###########

variable "policy_name" {
description = "IAM policy name. It override the default value, which is the same as role_name"
variable "policy_name_prefix" {
description = "IAM policy name prefix. It override the default value, which is the same as role_name"
type = string
default = null
}
Expand Down Expand Up @@ -786,6 +786,12 @@ variable "trigger_on_package_timestamp" {
default = true
}

variable "quiet_local_exec" {
description = "Whether to disable local execution output."
type = bool
default = false
}

############################################
# Lambda Advanced Logging Settings
############################################
Expand Down
Loading