How to reuse sharable variables among all terraform modules

My AWS project structure is as follows.

There are some generic variables for example aws_region app_componennt or app_envrionment for which actual values of varibales are defined under config env folder in teraform.tfars.

Now I need to pass these variables to all generic modules like roles or lambdas I am creating. I need to define that variable in a variable(3 files) as well as in variables files in each folder and then pass the values I have mentioned in module’s definition.

Is there a way I do not need to define variables at multiple places and can be sharable among all modules.Else I am creating duplicate variable files in each module.

main_project(folder)

config(folder)

dev(folder)
backend.conf
teraform.tfars(file storing actaul values of variables corresponding to env)
role
data.tf
main.tf
output.tf
variables.tf

lambdas
code of lambdas
main.tf
variables.tf
main.tf >>>>>>>>>>>>>>>>> this has modules defined in this (details below)
provider.tf
variables.tf

module “test-role” {
source = “./roles”
application = var.application
app_environment = var.app_environment
aws_region = var.aws_region
app_contacts = var.app_contacts
business_unit = var.business_unit
created_by = var.created_by
function = var.function
network_environment = var.network_environment
system_risk_class = var.system_risk_class
app_component = “role”
}

module “test-lambda” {
source = “./roles”
application = var.application
app_environment = var.app_environment
aws_region = var.aws_region
app_contacts = var.app_contacts
business_unit = var.business_unit
created_by = var.created_by
function = var.function
network_environment = var.network_environment
system_risk_class = var.system_risk_class
role=
app_component = “lambda”
}