66 lines
1.9 KiB
HCL
66 lines
1.9 KiB
HCL
data "azurerm_client_config" "current" {}
|
|
|
|
locals {
|
|
storage_account_name = (
|
|
var.name != null &&
|
|
trimspace(var.name) != "" ?
|
|
var.name :
|
|
"${coalesce(var.base_name, "")}${substr(md5("${data.azurerm_client_config.current.subscription_id}/${var.rg_name}/${coalesce(var.base_name, "")}"), 0, 6)}"
|
|
)
|
|
}
|
|
|
|
# Azure Storage Account
|
|
resource "azurerm_storage_account" "this" {
|
|
name = local.storage_account_name
|
|
resource_group_name = var.rg_name
|
|
location = var.location
|
|
account_tier = var.account_tier
|
|
account_replication_type = var.account_replication_type
|
|
account_kind = "StorageV2"
|
|
|
|
shared_access_key_enabled = false
|
|
allow_nested_items_to_be_public = var.allow_nested_items_to_be_public
|
|
https_traffic_only_enabled = true
|
|
public_network_access_enabled = var.public_network_access_enabled
|
|
min_tls_version = "TLS1_2"
|
|
|
|
blob_properties {
|
|
versioning_enabled = var.enable_blob_versioning
|
|
change_feed_enabled = var.enable_blob_change_feed
|
|
|
|
dynamic "delete_retention_policy" {
|
|
for_each = var.enable_blob_soft_delete ? [1] : []
|
|
|
|
content {
|
|
days = var.blob_soft_delete_retention_days
|
|
}
|
|
}
|
|
|
|
dynamic "container_delete_retention_policy" {
|
|
for_each = var.enable_container_soft_delete ? [1] : []
|
|
|
|
content {
|
|
days = var.container_soft_delete_retention_days
|
|
}
|
|
}
|
|
|
|
dynamic "restore_policy" {
|
|
for_each = var.enable_point_in_time_restore_for_containers ? [1] : []
|
|
|
|
content {
|
|
days = var.point_in_time_restore_days
|
|
}
|
|
}
|
|
}
|
|
|
|
tags = var.tags
|
|
}
|
|
|
|
# Azure Storage Container
|
|
resource "azurerm_storage_container" "containers" {
|
|
for_each = { for container in values(var.containers) : container.name => container }
|
|
name = each.value.name
|
|
storage_account_id = azurerm_storage_account.this.id
|
|
container_access_type = each.value.container_access_type
|
|
}
|