From 6beffe2553feebe2b31f2b6d00d7a1768c654bb1 Mon Sep 17 00:00:00 2001 From: brown9804 Date: Wed, 11 Feb 2026 07:24:42 -0600 Subject: [PATCH 1/8] synapse template --- 5_analytics-bigdata/README.md | 1 + .../synapse-analytics/README.md | 98 +++++++++++++ 5_analytics-bigdata/synapse-analytics/main.tf | 110 +++++++++++++++ .../synapse-analytics/outputs.tf | 31 +++++ .../synapse-analytics/provider.tf | 38 ++++++ .../synapse-analytics/terraform.tfvars | 27 ++++ .../synapse-analytics/variables.tf | 129 ++++++++++++++++++ README.md | 1 + 8 files changed, 435 insertions(+) create mode 100644 5_analytics-bigdata/synapse-analytics/README.md create mode 100644 5_analytics-bigdata/synapse-analytics/main.tf create mode 100644 5_analytics-bigdata/synapse-analytics/outputs.tf create mode 100644 5_analytics-bigdata/synapse-analytics/provider.tf create mode 100644 5_analytics-bigdata/synapse-analytics/terraform.tfvars create mode 100644 5_analytics-bigdata/synapse-analytics/variables.tf diff --git a/5_analytics-bigdata/README.md b/5_analytics-bigdata/README.md index 4ea12a9..0d52ba3 100644 --- a/5_analytics-bigdata/README.md +++ b/5_analytics-bigdata/README.md @@ -15,6 +15,7 @@ Last updated: 2026-02-09 ## Templates available - [Azure Data Factory](./data-factory) +- [Azure Synapse Analytics (Workspace)](./synapse-analytics)
diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md new file mode 100644 index 0000000..e14b792 --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -0,0 +1,98 @@ +# Terraform Template - Azure Synapse Analytics (Workspace) + +Costa Rica + +[![GitHub](https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff)](https://github.com/) +[brown9804](https://github.com/brown9804) + +Last updated: 2026-02-11 + +------------------------------------------ + +> This template contains Terraform configurations to create an Azure Synapse Analytics workspace backed by an ADLS Gen2 filesystem. + +> [!IMPORTANT] +> This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). + +> [!NOTE] +> Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. + +## File Descriptions + +- **main.tf**: Creates the Resource Group, Storage Account + filesystem (ADLS Gen2), and Synapse Workspace. +- **variables.tf**: Defines the input variables used in the Terraform configuration. +- **provider.tf**: Configures the AzureRM + AzAPI providers. +- **terraform.tfvars**: Provides example values for the variables defined in `variables.tf`. +- **outputs.tf**: Defines outputs such as the Synapse workspace ID. + +## Variables + +| Variable Name | Description | Type | Example Value | +| --- | --- | --- | --- | +| `resource_group_name` | Resource Group name to create/deploy into. | string | `"rg-analytics-dev"` | +| `location` | Azure region for the deployment. | string | `"eastus"` | +| `synapse_workspace_name` | Base Synapse workspace name. If suffix enabled, final is `-`. | string | `"synw-analytics-dev"` | +| `managed_resource_group_name` | Base managed RG name for Synapse. If suffix enabled, final is `-`. | string | `"rg-synapse-managed-analytics-dev"` | +| `storage_account_name` | Base storage account name. If suffix enabled, final is `` (no dash). | string | `"stadlsanalyticsdev"` | +| `filesystem_name` | ADLS Gen2 filesystem name (container). | string | `"synapse"` | +| `sql_administrator_login` | Synapse SQL admin login. | string | `"sqladminuser"` | +| `sql_administrator_password` | Synapse SQL admin password (prefer env var). | string | `""` | +| `append_random_suffix` | Append a random suffix to avoid global collisions. | bool | `true` | +| `random_suffix_length` | Length of the random suffix when enabled. | number | `6` | +| `tags` | Tags applied to resources. | map(string) | `{ "env": "dev" }` | + +## Usage + +1. Authenticate: + + ```sh + az login + ```` + + ```sh + az account show + # If needed: + az account set --subscription "" + ``` + +3. Provide the SQL admin password without committing it: + + PowerShell: + + ```powershell + $env:TF_VAR_sql_administrator_password = "" + ``` + +4. Initialize: + + ```sh + terraform init -upgrade + ``` + +5. Validate and plan: + + ```sh + terraform validate + terraform plan + ``` + +6. Apply: + + ```sh + terraform apply -auto-approve + ``` + +> [!NOTE] +> Synapse workspace names are globally unique. If you disable `append_random_suffix`, you may hit name collisions. + +> [!NOTE] +> The SQL admin password must meet complexity rules (at least 3 of: upper/lower/digit/special). Use `TF_VAR_sql_administrator_password` to avoid committing secrets. + + +
+ Total views +

Refresh Date: 2026-02-11

+
+ + +```` diff --git a/5_analytics-bigdata/synapse-analytics/main.tf b/5_analytics-bigdata/synapse-analytics/main.tf new file mode 100644 index 0000000..3aff815 --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/main.tf @@ -0,0 +1,110 @@ +# main.tf +# Creates an Azure Synapse Analytics workspace backed by an ADLS Gen2 filesystem. +# Storage resources are created via AzAPI (management plane) to avoid key-based data-plane operations. + +resource "azurerm_resource_group" "rg" { + name = var.resource_group_name + location = var.location + + tags = var.tags +} + +resource "random_string" "suffix" { + length = var.random_suffix_length + upper = false + special = false + numeric = true + + keepers = { + resource_group_name = var.resource_group_name + location = var.location + workspace_base = var.synapse_workspace_name + storage_base = var.storage_account_name + managed_rg_base = var.managed_resource_group_name + } +} + +locals { + suffix = var.append_random_suffix ? random_string.suffix.result : "" + synapse_workspace_name = var.append_random_suffix ? "${var.synapse_workspace_name}-${local.suffix}" : var.synapse_workspace_name + managed_rg_name = var.append_random_suffix ? "${var.managed_resource_group_name}-${local.suffix}" : var.managed_resource_group_name + + # Storage Account names must be lowercase alphanumeric and cannot contain dashes. + storage_account_name = var.append_random_suffix ? "${var.storage_account_name}${local.suffix}" : var.storage_account_name + + # azurerm_synapse_workspace expects the Data Lake Gen2 filesystem id in DFS URL form. + # Format: https://.dfs.core.windows.net/ + dfs_filesystem_id = "https://${local.storage_account_name}.dfs.core.windows.net/${var.filesystem_name}" +} + +resource "azapi_resource" "storage_account" { + type = "Microsoft.Storage/storageAccounts@2021-04-01" + name = local.storage_account_name + location = azurerm_resource_group.rg.location + parent_id = azurerm_resource_group.rg.id + + body = jsonencode({ + kind = "StorageV2" + sku = { + name = "Standard_LRS" + } + properties = { + isHnsEnabled = true + minimumTlsVersion = "TLS1_2" + supportsHttpsTrafficOnly = true + + # Often enforced by org policy; also avoids Terraform needing to use shared keys. + allowSharedKeyAccess = false + allowBlobPublicAccess = false + } + tags = var.tags + }) + + response_export_values = [ + "id", + "name" + ] +} + +resource "azapi_resource" "filesystem" { + type = "Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01" + name = var.filesystem_name + + parent_id = "${azapi_resource.storage_account.id}/blobServices/default" + + body = jsonencode({ + properties = { + publicAccess = "None" + } + }) + + response_export_values = [ + "id", + "name" + ] + + depends_on = [ + azapi_resource.storage_account + ] +} + +resource "azurerm_synapse_workspace" "ws" { + name = local.synapse_workspace_name + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + managed_resource_group_name = local.managed_rg_name + storage_data_lake_gen2_filesystem_id = local.dfs_filesystem_id + + sql_administrator_login = var.sql_administrator_login + sql_administrator_login_password = var.sql_administrator_password + + identity { + type = "SystemAssigned" + } + + tags = var.tags + + depends_on = [ + azapi_resource.filesystem + ] +} diff --git a/5_analytics-bigdata/synapse-analytics/outputs.tf b/5_analytics-bigdata/synapse-analytics/outputs.tf new file mode 100644 index 0000000..e606e5c --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/outputs.tf @@ -0,0 +1,31 @@ +# outputs.tf + +output "resource_group_id" { + description = "The ID of the resource group." + value = azurerm_resource_group.rg.id +} + +output "storage_account_id" { + description = "The resource ID of the Storage Account backing Synapse." + value = azapi_resource.storage_account.id +} + +output "filesystem_id" { + description = "The ARM resource ID of the ADLS Gen2 filesystem (container)." + value = azapi_resource.filesystem.id +} + +output "filesystem_dfs_url" { + description = "The DFS URL format used by Synapse for the default data lake storage filesystem." + value = "https://${azapi_resource.storage_account.name}.dfs.core.windows.net/${azapi_resource.filesystem.name}" +} + +output "synapse_workspace_id" { + description = "The resource ID of the Synapse workspace." + value = azurerm_synapse_workspace.ws.id +} + +output "synapse_workspace_name" { + description = "The name of the Synapse workspace." + value = azurerm_synapse_workspace.ws.name +} diff --git a/5_analytics-bigdata/synapse-analytics/provider.tf b/5_analytics-bigdata/synapse-analytics/provider.tf new file mode 100644 index 0000000..1b874a2 --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/provider.tf @@ -0,0 +1,38 @@ +# provider.tf +# This file configures the Azure providers to interact with Azure resources. + +terraform { + required_version = ">= 1.8, < 2.0" + + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "~> 3.116" + } + + azapi = { + source = "Azure/azapi" + version = "~> 1.13" + } + + random = { + source = "hashicorp/random" + version = "~> 3.6" + } + } +} + +provider "azurerm" { + features { + resource_group { + prevent_deletion_if_contains_resources = false + } + } + + # Uses the current Azure CLI context (az login + az account set) + skip_provider_registration = false +} + +provider "azapi" { + # Uses the current Azure CLI context (az login + az account set) +} diff --git a/5_analytics-bigdata/synapse-analytics/terraform.tfvars b/5_analytics-bigdata/synapse-analytics/terraform.tfvars new file mode 100644 index 0000000..ecb6aa0 --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/terraform.tfvars @@ -0,0 +1,27 @@ +resource_group_name = "rg-analytics-dev" +location = "eastus" + +# Synapse workspace names are globally unique. +# This template appends a random suffix by default to reduce collisions. +synapse_workspace_name = "synw-analytics-dev" +managed_resource_group_name = "rg-synapse-managed-analytics-dev" + +# Storage account names must be lowercase alphanumeric and globally unique. +# This template appends a random suffix by default (without dashes). +storage_account_name = "stadlsanalyticsdev" +filesystem_name = "synapse" + +sql_administrator_login = "sqladminuser" + +# Do NOT commit real passwords. Prefer using: +# $env:TF_VAR_sql_administrator_password = "" +sql_administrator_password = "ChangeMe123!" + +append_random_suffix = true +random_suffix_length = 6 + +tags = { + env = "dev" + area = "analytics-bigdata" + iac = "terraform" +} diff --git a/5_analytics-bigdata/synapse-analytics/variables.tf b/5_analytics-bigdata/synapse-analytics/variables.tf new file mode 100644 index 0000000..1fb2905 --- /dev/null +++ b/5_analytics-bigdata/synapse-analytics/variables.tf @@ -0,0 +1,129 @@ +# variables.tf +# This file defines the input variables used in the Terraform configuration. + +variable "resource_group_name" { + description = "The name of the Azure Resource Group to create and deploy Synapse into." + type = string + + validation { + condition = length(trimspace(var.resource_group_name)) > 0 + error_message = "resource_group_name must not be empty." + } +} + +variable "location" { + description = "The Azure region where the Resource Group and Synapse workspace will be created." + type = string + + validation { + condition = length(trimspace(var.location)) > 0 + error_message = "location must not be empty." + } +} + +variable "synapse_workspace_name" { + description = "Base name of the Synapse workspace. If append_random_suffix is true, the final name will be '-'." + type = string + + validation { + condition = ( + length(trimspace(var.synapse_workspace_name)) > 0 + && can(regex("^[a-zA-Z0-9][a-zA-Z0-9-]*$", var.synapse_workspace_name)) + && length(var.synapse_workspace_name) <= (var.append_random_suffix ? (45 - 1 - var.random_suffix_length) : 45) + ) + error_message = "synapse_workspace_name must be 1-45 chars, start with alphanumeric, contain only alphanumeric or '-', and leave room for '-' when append_random_suffix is true." + } +} + +variable "managed_resource_group_name" { + description = "Base name of the managed resource group for Synapse. If append_random_suffix is true, the final name will be '-'." + type = string + + validation { + condition = ( + length(trimspace(var.managed_resource_group_name)) > 0 + && length(var.managed_resource_group_name) <= (var.append_random_suffix ? (90 - 1 - var.random_suffix_length) : 90) + ) + error_message = "managed_resource_group_name must be 1-90 chars and leave room for '-' when append_random_suffix is true." + } +} + +variable "storage_account_name" { + description = "Base name of the Storage Account (lowercase alphanumeric, 3-24 chars). If append_random_suffix is true, the final name will be '' (no dash)." + type = string + + validation { + condition = ( + length(trimspace(var.storage_account_name)) >= 3 + && can(regex("^[a-z0-9]+$", var.storage_account_name)) + && length(var.storage_account_name) <= (var.append_random_suffix ? (24 - var.random_suffix_length) : 24) + ) + error_message = "storage_account_name must be lowercase alphanumeric, 3-24 chars, and leave room for the suffix (no dash) when append_random_suffix is true." + } +} + +variable "filesystem_name" { + description = "Name of the ADLS Gen2 filesystem (implemented as a private blob container)." + type = string + + validation { + condition = ( + length(trimspace(var.filesystem_name)) > 0 + && length(var.filesystem_name) <= 63 + && can(regex("^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$", var.filesystem_name)) + ) + error_message = "filesystem_name must be 1-63 chars, lowercase alphanumeric or '-', and start/end with alphanumeric." + } +} + +variable "sql_administrator_login" { + description = "SQL administrator login for the Synapse workspace." + type = string + + validation { + condition = length(trimspace(var.sql_administrator_login)) > 0 + error_message = "sql_administrator_login must not be empty." + } +} + +variable "sql_administrator_password" { + description = "SQL administrator password for the Synapse workspace. Prefer providing via TF_VAR_sql_administrator_password environment variable." + type = string + sensitive = true + + validation { + condition = ( + length(var.sql_administrator_password) >= 8 + && ( + (can(regex("[A-Z]", var.sql_administrator_password)) ? 1 : 0) + + (can(regex("[a-z]", var.sql_administrator_password)) ? 1 : 0) + + (can(regex("[0-9]", var.sql_administrator_password)) ? 1 : 0) + + (can(regex("[^A-Za-z0-9]", var.sql_administrator_password)) ? 1 : 0) + ) >= 3 + ) + error_message = "sql_administrator_password must be at least 8 characters and include characters from at least 3 of: uppercase, lowercase, digits, special." + } +} + +variable "append_random_suffix" { + description = "Whether to append a random suffix to globally-unique names (workspace, managed RG, and storage account) to avoid collisions." + type = bool + default = true +} + +variable "random_suffix_length" { + description = "Length of the random suffix appended when append_random_suffix is true." + type = number + default = 6 + + validation { + condition = var.random_suffix_length >= 4 && var.random_suffix_length <= 16 + error_message = "random_suffix_length must be between 4 and 16." + } +} + +variable "tags" { + description = "A map of tags to assign to the resources." + type = map(string) + default = {} +} diff --git a/README.md b/README.md index 33bfe37..dc66b06 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ Last updated: 2026-02-11 - [Analytics and Big Data](./5_analytics-bigdata) - [Azure Data Factory](./5_analytics-bigdata/data-factory) + - [Azure Synapse Analytics (Workspace)](./5_analytics-bigdata/synapse-analytics) From 5e65f163bb6dbdb438fbe96d637d0799efa42f13 Mon Sep 17 00:00:00 2001 From: brown9804 Date: Thu, 12 Feb 2026 17:00:37 -0600 Subject: [PATCH 2/8] both RGs explained --- .../synapse-analytics/README.md | 5 ++- 5_analytics-bigdata/synapse-analytics/main.tf | 38 ++++++++++++++----- .../synapse-analytics/outputs.tf | 2 +- .../synapse-analytics/terraform.tfvars | 6 ++- .../synapse-analytics/variables.tf | 13 ++++--- 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index e14b792..7b8140c 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -11,6 +11,9 @@ Last updated: 2026-02-11 > This template contains Terraform configurations to create an Azure Synapse Analytics workspace backed by an ADLS Gen2 filesystem. +> [!IMPORTANT] +> Azure Synapse always uses a **managed resource group** (configured by `managed_resource_group_name`). This is created and managed by the Synapse service itself and is required for the workspace to operate. You will see **two resource groups** in Azure: your main RG plus the Synapse-managed RG. + > [!IMPORTANT] > This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). @@ -32,7 +35,7 @@ Last updated: 2026-02-11 | `resource_group_name` | Resource Group name to create/deploy into. | string | `"rg-analytics-dev"` | | `location` | Azure region for the deployment. | string | `"eastus"` | | `synapse_workspace_name` | Base Synapse workspace name. If suffix enabled, final is `-`. | string | `"synw-analytics-dev"` | -| `managed_resource_group_name` | Base managed RG name for Synapse. If suffix enabled, final is `-`. | string | `"rg-synapse-managed-analytics-dev"` | +| `managed_resource_group_name` | Optional base managed RG name for Synapse. If omitted, auto-generated. | string | `null` | | `storage_account_name` | Base storage account name. If suffix enabled, final is `` (no dash). | string | `"stadlsanalyticsdev"` | | `filesystem_name` | ADLS Gen2 filesystem name (container). | string | `"synapse"` | | `sql_administrator_login` | Synapse SQL admin login. | string | `"sqladminuser"` | diff --git a/5_analytics-bigdata/synapse-analytics/main.tf b/5_analytics-bigdata/synapse-analytics/main.tf index 3aff815..451fcc3 100644 --- a/5_analytics-bigdata/synapse-analytics/main.tf +++ b/5_analytics-bigdata/synapse-analytics/main.tf @@ -2,11 +2,24 @@ # Creates an Azure Synapse Analytics workspace backed by an ADLS Gen2 filesystem. # Storage resources are created via AzAPI (management plane) to avoid key-based data-plane operations. -resource "azurerm_resource_group" "rg" { - name = var.resource_group_name - location = var.location +data "azurerm_client_config" "current" {} - tags = var.tags +# Resource group creation is idempotent in ARM (PUT). This will create the RG if it doesn't exist, +# or update tags if it already exists. +resource "azapi_resource" "resource_group" { + type = "Microsoft.Resources/resourceGroups@2022-09-01" + name = var.resource_group_name + location = var.location + parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}" + + body = jsonencode({ + tags = var.tags + }) + + response_export_values = [ + "id", + "name" + ] } resource "random_string" "suffix" { @@ -20,14 +33,19 @@ resource "random_string" "suffix" { location = var.location workspace_base = var.synapse_workspace_name storage_base = var.storage_account_name - managed_rg_base = var.managed_resource_group_name + managed_rg_base = coalesce(var.managed_resource_group_name, "rg-synapse-managed-${var.synapse_workspace_name}") } } locals { + rg_id = azapi_resource.resource_group.id + rg_name = var.resource_group_name + location = var.location + suffix = var.append_random_suffix ? random_string.suffix.result : "" synapse_workspace_name = var.append_random_suffix ? "${var.synapse_workspace_name}-${local.suffix}" : var.synapse_workspace_name - managed_rg_name = var.append_random_suffix ? "${var.managed_resource_group_name}-${local.suffix}" : var.managed_resource_group_name + managed_rg_base = coalesce(var.managed_resource_group_name, "rg-synapse-managed-${var.synapse_workspace_name}") + managed_rg_name = var.append_random_suffix ? "${local.managed_rg_base}-${local.suffix}" : local.managed_rg_base # Storage Account names must be lowercase alphanumeric and cannot contain dashes. storage_account_name = var.append_random_suffix ? "${var.storage_account_name}${local.suffix}" : var.storage_account_name @@ -40,8 +58,8 @@ locals { resource "azapi_resource" "storage_account" { type = "Microsoft.Storage/storageAccounts@2021-04-01" name = local.storage_account_name - location = azurerm_resource_group.rg.location - parent_id = azurerm_resource_group.rg.id + location = local.location + parent_id = local.rg_id body = jsonencode({ kind = "StorageV2" @@ -90,8 +108,8 @@ resource "azapi_resource" "filesystem" { resource "azurerm_synapse_workspace" "ws" { name = local.synapse_workspace_name - resource_group_name = azurerm_resource_group.rg.name - location = azurerm_resource_group.rg.location + resource_group_name = local.rg_name + location = local.location managed_resource_group_name = local.managed_rg_name storage_data_lake_gen2_filesystem_id = local.dfs_filesystem_id diff --git a/5_analytics-bigdata/synapse-analytics/outputs.tf b/5_analytics-bigdata/synapse-analytics/outputs.tf index e606e5c..618a38f 100644 --- a/5_analytics-bigdata/synapse-analytics/outputs.tf +++ b/5_analytics-bigdata/synapse-analytics/outputs.tf @@ -2,7 +2,7 @@ output "resource_group_id" { description = "The ID of the resource group." - value = azurerm_resource_group.rg.id + value = local.rg_id } output "storage_account_id" { diff --git a/5_analytics-bigdata/synapse-analytics/terraform.tfvars b/5_analytics-bigdata/synapse-analytics/terraform.tfvars index ecb6aa0..dfbe965 100644 --- a/5_analytics-bigdata/synapse-analytics/terraform.tfvars +++ b/5_analytics-bigdata/synapse-analytics/terraform.tfvars @@ -3,8 +3,10 @@ location = "eastus" # Synapse workspace names are globally unique. # This template appends a random suffix by default to reduce collisions. -synapse_workspace_name = "synw-analytics-dev" -managed_resource_group_name = "rg-synapse-managed-analytics-dev" +synapse_workspace_name = "synw-analytics-dev" + +# Optional. If omitted, the template auto-generates a Synapse managed RG name. +# managed_resource_group_name = "rg-synapse-managed-analytics-dev" # Storage account names must be lowercase alphanumeric and globally unique. # This template appends a random suffix by default (without dashes). diff --git a/5_analytics-bigdata/synapse-analytics/variables.tf b/5_analytics-bigdata/synapse-analytics/variables.tf index 1fb2905..09cd020 100644 --- a/5_analytics-bigdata/synapse-analytics/variables.tf +++ b/5_analytics-bigdata/synapse-analytics/variables.tf @@ -2,7 +2,7 @@ # This file defines the input variables used in the Terraform configuration. variable "resource_group_name" { - description = "The name of the Azure Resource Group to create and deploy Synapse into." + description = "The name of the Azure Resource Group to deploy Synapse into. If create_resource_group is true, Terraform will create this resource group." type = string validation { @@ -36,15 +36,18 @@ variable "synapse_workspace_name" { } variable "managed_resource_group_name" { - description = "Base name of the managed resource group for Synapse. If append_random_suffix is true, the final name will be '-'." + description = "Optional base name of the Synapse managed resource group. If null/omitted, the template auto-generates a name. If append_random_suffix is true, the final name will be '-'." type = string + default = null validation { condition = ( - length(trimspace(var.managed_resource_group_name)) > 0 - && length(var.managed_resource_group_name) <= (var.append_random_suffix ? (90 - 1 - var.random_suffix_length) : 90) + var.managed_resource_group_name == null ? true : ( + length(try(trimspace(var.managed_resource_group_name), "")) > 0 + && length(try(var.managed_resource_group_name, "")) <= (var.append_random_suffix ? (90 - 1 - var.random_suffix_length) : 90) + ) ) - error_message = "managed_resource_group_name must be 1-90 chars and leave room for '-' when append_random_suffix is true." + error_message = "managed_resource_group_name must be 1-90 chars (or null to auto-generate) and leave room for '-' when append_random_suffix is true." } } From a332bde77b34d4301a254529464fb6c4a8a12704 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 23:01:45 +0000 Subject: [PATCH 3/8] Update last modified date in Markdown files --- 5_analytics-bigdata/synapse-analytics/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index 7b8140c..3b35432 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -5,7 +5,7 @@ Costa Rica [![GitHub](https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff)](https://github.com/) [brown9804](https://github.com/brown9804) -Last updated: 2026-02-11 +Last updated: 2026-02-12 ------------------------------------------ From 139c787f430016c3817aff8703305cbb2280026d Mon Sep 17 00:00:00 2001 From: Timna Brown <24630902+brown9804@users.noreply.github.com> Date: Thu, 12 Feb 2026 17:06:57 -0600 Subject: [PATCH 4/8] Enhance README with images for Synapse resources Added images to the README for better visualization of Azure Synapse resources. --- 5_analytics-bigdata/synapse-analytics/README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index 3b35432..9e77d05 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -14,11 +14,21 @@ Last updated: 2026-02-12 > [!IMPORTANT] > Azure Synapse always uses a **managed resource group** (configured by `managed_resource_group_name`). This is created and managed by the Synapse service itself and is required for the workspace to operate. You will see **two resource groups** in Azure: your main RG plus the Synapse-managed RG. -> [!IMPORTANT] -> This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). +
+ image +
+ +
+ image +
+ +
+ image +
> [!NOTE] -> Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. +> - This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). +> - Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. ## File Descriptions From eb106f736fe0280dba5389580d2bc8dbd6f0c24d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 23:07:11 +0000 Subject: [PATCH 5/8] Fix Markdown syntax issues --- 5_analytics-bigdata/synapse-analytics/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index 9e77d05..825fea8 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -27,6 +27,7 @@ Last updated: 2026-02-12
> [!NOTE] +> > - This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). > - Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. From 31ffc32c4e0035af3f336a9ababcc4c46bac7575 Mon Sep 17 00:00:00 2001 From: Timna Brown <24630902+brown9804@users.noreply.github.com> Date: Thu, 12 Feb 2026 17:08:08 -0600 Subject: [PATCH 6/8] Update README with notes on Synapse workspace names and SQL password --- 5_analytics-bigdata/synapse-analytics/README.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index 825fea8..7bcddca 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -27,9 +27,10 @@ Last updated: 2026-02-12 > [!NOTE] -> > - This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). > - Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. +> - Synapse workspace names are globally unique. If you disable `append_random_suffix`, you may hit name collisions. +> - The SQL admin password must meet complexity rules (at least 3 of: upper/lower/digit/special). Use `TF_VAR_sql_administrator_password` to avoid committing secrets. ## File Descriptions @@ -95,18 +96,10 @@ Last updated: 2026-02-12 ```sh terraform apply -auto-approve ``` - -> [!NOTE] -> Synapse workspace names are globally unique. If you disable `append_random_suffix`, you may hit name collisions. - -> [!NOTE] -> The SQL admin password must meet complexity rules (at least 3 of: upper/lower/digit/special). Use `TF_VAR_sql_administrator_password` to avoid committing secrets. - +
Total views

Refresh Date: 2026-02-11

- -```` From f91dae0a4415e82e99bde7676101a51070089e32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 23:08:23 +0000 Subject: [PATCH 7/8] Update visitor count --- 0_core-infrastructure/README.md | 4 ++-- 0_core-infrastructure/azure-bastion/README.md | 4 ++-- 0_core-infrastructure/azure-dns/README.md | 4 ++-- 0_core-infrastructure/network-security-group/README.md | 4 ++-- 0_core-infrastructure/public-ip/README.md | 4 ++-- 0_core-infrastructure/resource-group/README.md | 4 ++-- 0_core-infrastructure/subnet/README.md | 4 ++-- 0_core-infrastructure/virtual-network/README.md | 4 ++-- 10_migration-backup/README.md | 4 ++-- 10_migration-backup/backup/README.md | 4 ++-- 10_migration-backup/site-recovery/README.md | 4 ++-- 11_media-services/README.md | 4 ++-- 11_media-services/ai-video-indexer/README.md | 4 ++-- 11_media-services/cdn/README.md | 4 ++-- 1_storage-databases/README.md | 4 ++-- 1_storage-databases/blob-storage/README.md | 4 ++-- 1_storage-databases/cosmos-db/README.md | 4 ++-- 1_storage-databases/data-lake-storage/README.md | 4 ++-- 1_storage-databases/file-storage/README.md | 4 ++-- 1_storage-databases/mongo-atlas/README.md | 4 ++-- 1_storage-databases/mongo-atlas/known_errors.md | 4 ++-- 1_storage-databases/mysql-flexible-server/README.md | 4 ++-- 1_storage-databases/postgresql/README.md | 4 ++-- 1_storage-databases/sql-database/README.md | 4 ++-- 1_storage-databases/storage-account/README.md | 4 ++-- 2_compute-containers/README.md | 4 ++-- 2_compute-containers/app-service/README.md | 4 ++-- 2_compute-containers/batch/README.md | 4 ++-- 2_compute-containers/container-instances/README.md | 4 ++-- 2_compute-containers/function-app/README.md | 4 ++-- 2_compute-containers/kubernetes-service/README.md | 4 ++-- 2_compute-containers/virtual-desktop/README.md | 4 ++-- 2_compute-containers/virtual-machine/README.md | 4 ++-- 3_networking/README.md | 4 ++-- 3_networking/application-gateway/README.md | 4 ++-- 3_networking/cdn/README.md | 4 ++-- 3_networking/expressroute/README.md | 4 ++-- 3_networking/firewall/README.md | 4 ++-- 3_networking/front-door/README.md | 4 ++-- 3_networking/load-balancer/README.md | 4 ++-- 3_networking/traffic-manager/README.md | 4 ++-- 3_networking/vpn-gateway/README.md | 4 ++-- 4_identity-security/README.md | 4 ++-- 4_identity-security/entra_id/README.md | 4 ++-- 4_identity-security/key-vault/README.md | 4 ++-- 4_identity-security/managed-identity/README.md | 4 ++-- 4_identity-security/policy/README.md | 4 ++-- 5_analytics-bigdata/README.md | 4 ++-- 5_analytics-bigdata/data-factory/README.md | 4 ++-- 5_analytics-bigdata/synapse-analytics/README.md | 4 ++-- 6_monitoring-management/README.md | 4 ++-- 7_iot/README.md | 4 ++-- 8_ai-ml/README.md | 4 ++-- 9_developer-tools/README.md | 4 ++-- README.md | 4 ++-- 55 files changed, 110 insertions(+), 110 deletions(-) diff --git a/0_core-infrastructure/README.md b/0_core-infrastructure/README.md index 67d16da..50cc7c3 100644 --- a/0_core-infrastructure/README.md +++ b/0_core-infrastructure/README.md @@ -24,7 +24,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/azure-bastion/README.md b/0_core-infrastructure/azure-bastion/README.md index f6cf176..c000d16 100644 --- a/0_core-infrastructure/azure-bastion/README.md +++ b/0_core-infrastructure/azure-bastion/README.md @@ -45,7 +45,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/azure-dns/README.md b/0_core-infrastructure/azure-dns/README.md index 88eec52..9c59f09 100644 --- a/0_core-infrastructure/azure-dns/README.md +++ b/0_core-infrastructure/azure-dns/README.md @@ -40,7 +40,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/network-security-group/README.md b/0_core-infrastructure/network-security-group/README.md index 0576257..59ae6d8 100644 --- a/0_core-infrastructure/network-security-group/README.md +++ b/0_core-infrastructure/network-security-group/README.md @@ -40,7 +40,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/public-ip/README.md b/0_core-infrastructure/public-ip/README.md index 1157fc7..fa55469 100644 --- a/0_core-infrastructure/public-ip/README.md +++ b/0_core-infrastructure/public-ip/README.md @@ -42,7 +42,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/resource-group/README.md b/0_core-infrastructure/resource-group/README.md index 322f6ec..63ba4d1 100644 --- a/0_core-infrastructure/resource-group/README.md +++ b/0_core-infrastructure/resource-group/README.md @@ -33,7 +33,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/subnet/README.md b/0_core-infrastructure/subnet/README.md index 0aa0d60..abce34e 100644 --- a/0_core-infrastructure/subnet/README.md +++ b/0_core-infrastructure/subnet/README.md @@ -43,7 +43,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/0_core-infrastructure/virtual-network/README.md b/0_core-infrastructure/virtual-network/README.md index d10c732..06e6f8b 100644 --- a/0_core-infrastructure/virtual-network/README.md +++ b/0_core-infrastructure/virtual-network/README.md @@ -41,7 +41,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/10_migration-backup/README.md b/10_migration-backup/README.md index 27a05b4..730ec13 100644 --- a/10_migration-backup/README.md +++ b/10_migration-backup/README.md @@ -19,7 +19,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/10_migration-backup/backup/README.md b/10_migration-backup/backup/README.md index 564a44e..cfc9bcf 100644 --- a/10_migration-backup/backup/README.md +++ b/10_migration-backup/backup/README.md @@ -52,7 +52,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/10_migration-backup/site-recovery/README.md b/10_migration-backup/site-recovery/README.md index 4d093fb..1568ee7 100644 --- a/10_migration-backup/site-recovery/README.md +++ b/10_migration-backup/site-recovery/README.md @@ -52,7 +52,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/11_media-services/README.md b/11_media-services/README.md index 21ee2b1..5c28713 100644 --- a/11_media-services/README.md +++ b/11_media-services/README.md @@ -19,7 +19,7 @@ Last updated: 2026-02-11
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/11_media-services/ai-video-indexer/README.md b/11_media-services/ai-video-indexer/README.md index a7a0fb6..0851236 100644 --- a/11_media-services/ai-video-indexer/README.md +++ b/11_media-services/ai-video-indexer/README.md @@ -78,7 +78,7 @@ Last updated: 2026-02-10
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/11_media-services/cdn/README.md b/11_media-services/cdn/README.md index b1d47f3..322b528 100644 --- a/11_media-services/cdn/README.md +++ b/11_media-services/cdn/README.md @@ -85,7 +85,7 @@ Last updated: 2026-02-10
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/README.md b/1_storage-databases/README.md index 46a9e70..0b0e9f6 100644 --- a/1_storage-databases/README.md +++ b/1_storage-databases/README.md @@ -26,7 +26,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/blob-storage/README.md b/1_storage-databases/blob-storage/README.md index 858e960..720eef9 100644 --- a/1_storage-databases/blob-storage/README.md +++ b/1_storage-databases/blob-storage/README.md @@ -45,7 +45,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/cosmos-db/README.md b/1_storage-databases/cosmos-db/README.md index b0d8157..d5b4ec8 100644 --- a/1_storage-databases/cosmos-db/README.md +++ b/1_storage-databases/cosmos-db/README.md @@ -40,7 +40,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/data-lake-storage/README.md b/1_storage-databases/data-lake-storage/README.md index 115a653..655079c 100644 --- a/1_storage-databases/data-lake-storage/README.md +++ b/1_storage-databases/data-lake-storage/README.md @@ -42,7 +42,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/file-storage/README.md b/1_storage-databases/file-storage/README.md index 142fee9..350a07b 100644 --- a/1_storage-databases/file-storage/README.md +++ b/1_storage-databases/file-storage/README.md @@ -44,7 +44,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/mongo-atlas/README.md b/1_storage-databases/mongo-atlas/README.md index 56d2233..5da541e 100644 --- a/1_storage-databases/mongo-atlas/README.md +++ b/1_storage-databases/mongo-atlas/README.md @@ -133,7 +133,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/mongo-atlas/known_errors.md b/1_storage-databases/mongo-atlas/known_errors.md index 8ac93be..fd426b4 100644 --- a/1_storage-databases/mongo-atlas/known_errors.md +++ b/1_storage-databases/mongo-atlas/known_errors.md @@ -62,7 +62,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/mysql-flexible-server/README.md b/1_storage-databases/mysql-flexible-server/README.md index ea01f5f..8fff7e0 100644 --- a/1_storage-databases/mysql-flexible-server/README.md +++ b/1_storage-databases/mysql-flexible-server/README.md @@ -49,7 +49,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/postgresql/README.md b/1_storage-databases/postgresql/README.md index 3f578bd..cfa9b4d 100644 --- a/1_storage-databases/postgresql/README.md +++ b/1_storage-databases/postgresql/README.md @@ -48,7 +48,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/sql-database/README.md b/1_storage-databases/sql-database/README.md index f24a2e7..bb9e14b 100644 --- a/1_storage-databases/sql-database/README.md +++ b/1_storage-databases/sql-database/README.md @@ -44,7 +44,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/1_storage-databases/storage-account/README.md b/1_storage-databases/storage-account/README.md index 488b161..a99e090 100644 --- a/1_storage-databases/storage-account/README.md +++ b/1_storage-databases/storage-account/README.md @@ -42,7 +42,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/README.md b/2_compute-containers/README.md index 9d9086f..2176a59 100644 --- a/2_compute-containers/README.md +++ b/2_compute-containers/README.md @@ -24,7 +24,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/app-service/README.md b/2_compute-containers/app-service/README.md index 951fd29..198045f 100644 --- a/2_compute-containers/app-service/README.md +++ b/2_compute-containers/app-service/README.md @@ -43,7 +43,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/batch/README.md b/2_compute-containers/batch/README.md index d14d086..58641f3 100644 --- a/2_compute-containers/batch/README.md +++ b/2_compute-containers/batch/README.md @@ -40,7 +40,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/container-instances/README.md b/2_compute-containers/container-instances/README.md index c1e76f3..078adc5 100644 --- a/2_compute-containers/container-instances/README.md +++ b/2_compute-containers/container-instances/README.md @@ -45,7 +45,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/function-app/README.md b/2_compute-containers/function-app/README.md index 2a232b5..46c5963 100644 --- a/2_compute-containers/function-app/README.md +++ b/2_compute-containers/function-app/README.md @@ -43,7 +43,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/kubernetes-service/README.md b/2_compute-containers/kubernetes-service/README.md index 6447a9c..e8db7d5 100644 --- a/2_compute-containers/kubernetes-service/README.md +++ b/2_compute-containers/kubernetes-service/README.md @@ -50,7 +50,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/virtual-desktop/README.md b/2_compute-containers/virtual-desktop/README.md index a0837f1..12d53a7 100644 --- a/2_compute-containers/virtual-desktop/README.md +++ b/2_compute-containers/virtual-desktop/README.md @@ -46,7 +46,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/2_compute-containers/virtual-machine/README.md b/2_compute-containers/virtual-machine/README.md index f716c96..1329e59 100644 --- a/2_compute-containers/virtual-machine/README.md +++ b/2_compute-containers/virtual-machine/README.md @@ -45,7 +45,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/README.md b/3_networking/README.md index 059bbc3..a7d3f0e 100644 --- a/3_networking/README.md +++ b/3_networking/README.md @@ -25,7 +25,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/application-gateway/README.md b/3_networking/application-gateway/README.md index 93f43d1..554d172 100644 --- a/3_networking/application-gateway/README.md +++ b/3_networking/application-gateway/README.md @@ -65,7 +65,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/cdn/README.md b/3_networking/cdn/README.md index a580874..bc354d7 100644 --- a/3_networking/cdn/README.md +++ b/3_networking/cdn/README.md @@ -57,7 +57,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/expressroute/README.md b/3_networking/expressroute/README.md index d5da01a..578339b 100644 --- a/3_networking/expressroute/README.md +++ b/3_networking/expressroute/README.md @@ -60,7 +60,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/firewall/README.md b/3_networking/firewall/README.md index 8f63e07..7e8a5ba 100644 --- a/3_networking/firewall/README.md +++ b/3_networking/firewall/README.md @@ -56,7 +56,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/front-door/README.md b/3_networking/front-door/README.md index d310387..a87cbb6 100644 --- a/3_networking/front-door/README.md +++ b/3_networking/front-door/README.md @@ -58,7 +58,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/load-balancer/README.md b/3_networking/load-balancer/README.md index cf38792..c10601d 100644 --- a/3_networking/load-balancer/README.md +++ b/3_networking/load-balancer/README.md @@ -71,7 +71,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/traffic-manager/README.md b/3_networking/traffic-manager/README.md index d29f138..eec8f42 100644 --- a/3_networking/traffic-manager/README.md +++ b/3_networking/traffic-manager/README.md @@ -63,7 +63,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/3_networking/vpn-gateway/README.md b/3_networking/vpn-gateway/README.md index 5dcc302..9683a50 100644 --- a/3_networking/vpn-gateway/README.md +++ b/3_networking/vpn-gateway/README.md @@ -57,7 +57,7 @@ terraform apply
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/4_identity-security/README.md b/4_identity-security/README.md index a3ef760..909c1a2 100644 --- a/4_identity-security/README.md +++ b/4_identity-security/README.md @@ -21,7 +21,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/4_identity-security/entra_id/README.md b/4_identity-security/entra_id/README.md index 37255a1..0915f39 100644 --- a/4_identity-security/entra_id/README.md +++ b/4_identity-security/entra_id/README.md @@ -74,7 +74,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/4_identity-security/key-vault/README.md b/4_identity-security/key-vault/README.md index e4a29e0..316817e 100644 --- a/4_identity-security/key-vault/README.md +++ b/4_identity-security/key-vault/README.md @@ -91,7 +91,7 @@ Below is a list of variables used in this template, their expected values, types
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/4_identity-security/managed-identity/README.md b/4_identity-security/managed-identity/README.md index 8bdb711..67d70ba 100644 --- a/4_identity-security/managed-identity/README.md +++ b/4_identity-security/managed-identity/README.md @@ -74,7 +74,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/4_identity-security/policy/README.md b/4_identity-security/policy/README.md index 043bb79..65f2d00 100644 --- a/4_identity-security/policy/README.md +++ b/4_identity-security/policy/README.md @@ -86,7 +86,7 @@ Last updated: 2026-02-10
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/5_analytics-bigdata/README.md b/5_analytics-bigdata/README.md index 0d52ba3..7633efe 100644 --- a/5_analytics-bigdata/README.md +++ b/5_analytics-bigdata/README.md @@ -19,7 +19,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/5_analytics-bigdata/data-factory/README.md b/5_analytics-bigdata/data-factory/README.md index 2c0d08b..53f7f65 100644 --- a/5_analytics-bigdata/data-factory/README.md +++ b/5_analytics-bigdata/data-factory/README.md @@ -83,7 +83,7 @@ Last updated: 2026-02-11
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index 7bcddca..c85c303 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -99,7 +99,7 @@ Last updated: 2026-02-12
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/6_monitoring-management/README.md b/6_monitoring-management/README.md index 182315e..f19709c 100644 --- a/6_monitoring-management/README.md +++ b/6_monitoring-management/README.md @@ -14,7 +14,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/7_iot/README.md b/7_iot/README.md index e607932..cfef4dc 100644 --- a/7_iot/README.md +++ b/7_iot/README.md @@ -14,7 +14,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/8_ai-ml/README.md b/8_ai-ml/README.md index 9f3a057..a069616 100644 --- a/8_ai-ml/README.md +++ b/8_ai-ml/README.md @@ -14,7 +14,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/9_developer-tools/README.md b/9_developer-tools/README.md index 4460136..44f284a 100644 --- a/9_developer-tools/README.md +++ b/9_developer-tools/README.md @@ -14,7 +14,7 @@ Last updated: 2026-02-09
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

diff --git a/README.md b/README.md index dc66b06..c38bafa 100644 --- a/README.md +++ b/README.md @@ -256,8 +256,8 @@ graph TD;
- Total views -

Refresh Date: 2026-02-11

+ Total views +

Refresh Date: 2026-02-12

From 96081cf30871ac43710b17e13babe247b1d003ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 23:08:26 +0000 Subject: [PATCH 8/8] Fix Markdown syntax issues --- 5_analytics-bigdata/synapse-analytics/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/5_analytics-bigdata/synapse-analytics/README.md b/5_analytics-bigdata/synapse-analytics/README.md index c85c303..a318b17 100644 --- a/5_analytics-bigdata/synapse-analytics/README.md +++ b/5_analytics-bigdata/synapse-analytics/README.md @@ -27,6 +27,7 @@ Last updated: 2026-02-12 > [!NOTE] +> > - This template creates the Storage Account and filesystem via the AzAPI provider (management plane) to avoid key-based Storage data-plane operations (common in environments where shared keys are disabled by policy). > - Synapse validates the default data lake storage using the DFS URL format: `https://.dfs.core.windows.net/`. This template passes that format to `azurerm_synapse_workspace`. > - Synapse workspace names are globally unique. If you disable `append_random_suffix`, you may hit name collisions.