Skip to content

More compact way for feedback role(s) #58

Closed
@xnick123

Description

@xnick123

Is your request related to a problem? Please describe.

I often use the same role for the 4 feedback types and the same success/failure rate. Which i find, blows up my code unproportinally. Most of my SNS modules based on you great tf-module just need 6 lines. But because of the feedback lines, it gets up to 5 times so much. Having repositories with 20-30 SNS modules created, feels like overhead.

`

application_feedback = {
failure_role_arn = aws_iam_role.this.arn
success_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
firehose_feedback = {
failure_role_arn = aws_iam_role.this.arn
success_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
http_feedback = {
failure_role_arn = aws_iam_role.this.arn
success_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
lambda_feedback = {
failure_role_arn = aws_iam_role.this.arn
success_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
sqs_feedback = {
failure_role_arn = aws_iam_role.this.arn
success_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
`

Describe the solution you'd like.

Ideally i'd love to have a way e.g. 3 such values like below or in any way which would be consistent with best practices.

`

global_feedback = {
enable = ["sqs", "lambda", "firehose"]
success_iam_role_arn = aws_iam_role.this.arn
failure_iam_role_arn = aws_iam_role.this.arn
success_sample_rate = 100
}
`
Global_feedback would require priority over the others, in case somebody uses the regular ones. But i understand that this would open doors to confusion.

Describe alternatives you've considered.

  • I know i could use a for loop to create them, and handle that outside. I do that where i can. But i often have cases where it is not feasible.
  • Instead i wrote a wrapper module to hide away the extra lines of code, which is ok, but i would like to avoid if others here have the same challenge like me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions