An open API service indexing awesome lists of open source software.

https://github.com/dsb-norge/terraform-azurerm-consumption-budget-monitoring

Terraform module to create management locks for resources
https://github.com/dsb-norge/terraform-azurerm-consumption-budget-monitoring

dsb-terraform-module

Last synced: 2 months ago
JSON representation

Terraform module to create management locks for resources

Awesome Lists containing this project

README

        

# Terraform module for budget consumption monitoring in Azure

Terraform module to create consumption budget with alerting in Azure.
Module has following features:

- Create consumption budget (in local currency).
- Create alert rule on budget consumption threshold with email notification.
- Create alert with email notification when budget consumption anomaly is detected.

## Usage

Refer to [examples](https://github.com/dsb-norge/terraform-azurerm-consumption-budget-monitoring/tree/main/examples) for usage of module.

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.8.0, < 2.0.0 |
| [azurerm](#requirement\_azurerm) | >= 3.0.0, < 5.0.0 |

## Resources

| Name | Type |
|------|------|
| [azurerm_consumption_budget_subscription.sub_budget_consumption](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/consumption_budget_subscription) | resource |
| [azurerm_cost_anomaly_alert.sub_cost_anomaly_alert](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/cost_anomaly_alert) | resource |
| [azurerm_subscription.current](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/subscription) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [app\_short\_name](#input\_app\_short\_name) | Name of app short, used for rg | `string` | n/a | yes |
| [consumption\_budget\_amount](#input\_consumption\_budget\_amount) | The amount of money to be consumed | `number` | n/a | yes |
| [environment](#input\_environment) | The runtime environment targeted. Development, test, qa, production etc | `string` | n/a | yes |
| [subscription](#input\_subscription) | The subscription | `string` | n/a | yes |
| [consumption\_budget\_notification\_cfg](#input\_consumption\_budget\_notification\_cfg) | The notification blocks |

map(object({
enabled = optional(bool)
threshold = optional(number)
operator = optional(string)
contact_emails = optional(list(string))
}))
|
{
"notification1": {
"enabled": false
}
}
| no |
| [consumption\_budget\_time\_grain](#input\_consumption\_budget\_time\_grain) | The time grain for the consumption budget | `string` | `"Monthly"` | no |
| [cost\_anomaly\_alert\_email\_receivers](#input\_cost\_anomaly\_alert\_email\_receivers) | The email addresses to receive cost anomaly alerts | `list(string)` | `[]` | no |

## Outputs

| Name | Description |
|------|-------------|
| [consumption\_budget\_id](#output\_consumption\_budget\_id) | value of the consumption budget id |
| [cost\_anomaly\_alert\_id](#output\_cost\_anomaly\_alert\_id) | value of the cost anomaly alert id |

## Modules

No modules.