I want to build a module with syntax as follows:
module "order_module" {
service {
name ="some-name"
}
lambda {
name = "some-lambda-name"
}
}
Ideally I want to be able to provide multiple service and functions in this way:
module "order_module" {
service {
name ="some-name"
}
service {
name ="some-name-1"
}
lambda {
name = "some-lambda-name"
}
lambda {
name = "some-lambda-name-2"
}
lambda {
name = "some-lambda-name-3"
}
}
With variables I can do this:
module "order_module" {
service = {
name ="some-name"
}
lambda = {
name = "some-lambda-name"
}
}
However when I want to provide more services I need to put them in a list:
module "order_module" {
service = [{
name ="some-name"
},
{
name ="some-name-2"
}]
lambda = {
name = "some-lambda-name"
}
}
I didn't find a way to build modules with block. A native resources have this:
resource "azurerm_key_vault" "lab" {
name = "${var.app_name}${var.env_name}vault${random_id.lab.dec}"
location = azurerm_resource_group.lab.location
resource_group_name = azurerm_resource_group.lab.name
tenant_id = data.azurerm_client_config.lab.tenant_id
sku_name = "standard"
access_policy {
tenant_id = data.azurerm_client_config.lab.tenant_id
object_id = data.external.lab.result.objectId
key_permissions = []
secret_permissions = [
"list",
"set",
"get",
"delete"
]
}
}
access_policy
above. Is this possible to provide parameters to module via such blocks?