avm-res-web-site breaking changes
An Azure Verified Module for Terraform, published as Azure/avm-res-web-site/azurerm in the Terraform Registry: the resource module for Web/Function App.
Azure
Latest v0.24.1, released · 3 releases that list breaking changes in the last 12 months
Pick your version
Every release from v0.17.2 up to v0.24.1: 5 releases with breaking changes, 17 changes
Breaking changes
v0.24.0
- Breaking, only if you call modules/site_config_helpers directly: it now requires is_function_app (bool). Pass true for Function Apps and false otherwise. Callers of the root module are unaffected.
v0.23.0
- Logic App Node.js default: Logic Apps that do not set WEBSITE_NODE_DEFAULT_VERSION move from Node.js ~18 to ~22. Validate workflows before applying, or set logic_app_node_version = "~18" to retain the old runtime. (#344)
- Logic App worker runtime: The module now sends Microsoft's documented FUNCTIONS_WORKER_RUNTIME = "dotnet" instead of "node". Microsoft says this should not affect workflow execution. To retain the old value, set app_settings = { FUNCTIONS_WORKER_RUNTIME = "node" } using that casing. (#379)
- Removed outputs: Unused whole-resource outputs were removed from the certificate and configuration submodules. The root deployment_slot_locks, resource_lock, and resource_private_endpoints outputs were removed, and deployment_slots now exposes only each slot's name and resource_id. The root resource and private_endpoints compatibility outputs remain. Replace references with the available discrete outputs. (#369)
- Output sensitivity: custom_domain_verification_id is now sensitive. Mark downstream outputs as sensitive, or use nonsensitive() when publishing it to the public asuid.<hostname> DNS TXT record. Resource and managed-identity IDs are no longer marked sensitive; existing downstream sensitive = true declarations remain valid. (#371)
- Explicit null collection inputs: always_ready, backup, connection_strings, site_config, slots_storage_shares_to_mount_sensitive_values, sticky_settings, and storage_shares_to_mount now treat explicit null as absent and use their declared defaults. Remove explicit null assignments when upgrading. retry = null remains supported and continues to disable retries. (#374)
- Flex Consumption app settings: New FC1 deployments no longer receive module-supplied FUNCTIONS_EXTENSION_VERSION or WEBSITE_CONTENTSHARE. Existing apps may retain previously written values because the underlying update resource merges settings; FC1 ignores them. Explicit caller-supplied app settings still pass through. (#380)
v0.21.0
- This release is essentially a re-write of the module moving from azurerm to azapi in preparation for a V1 release. Unfortunately, due to the way azurerm resources are structured it was not possible to migrate to azapi in a non-breaking way. The breaking changes include.
- Variable interfaces have been updated to more closely match the ARM API interface
- Multiple azurerm resources for sites and slots have been consolidated into a 2 azapi resources
- Due to this being a resource module, it should never have supported the management of Application Insights, so this has been removed from the module. It has been added to all the examples to show how to use it though.
- Given these changes, it was not possible for us to support a seamless migration path with moved blocks.
- 1. Update the module version 2. Run terraform init 3. Run terraform plan 4. Update module inputs to match the updated variables and run terraform plan again until validation passes 5. Identify which resources in the plan are going to be destroyed and recreated 6. For each resource you wish to retain and don't wish to destroy and recreate, add a moved block 7. For application insights, you'll need to create or leverage an existing log analytics workspace and create a new application insights resource in your desired state. Leverage these modules for that purpose: https://registry.terraform.io/modules/Azure/avm-res-insights-component/azurerm/latest and https://registry.terraform.io/modules/Azure/avm-res-operationalinsights-workspace/azurerm/latest. You'll then need to add a moved block if you don't wish to destroy and recreate it Source for this change in v0.21.0
- We appreciate this update will result in significant effort for some customers and apologise for that. However, we needed to get to this module structure in order to support all features of app service, function apps, and logic apps moving forward as well as being able to get to the v1 release.
v0.19.0
- updating metric to enabled_metric for diagnostic settings (addresses #225)
v0.18.0
- potential breaking change regarding diagnostics setting to use category for log_categories
- potential breaking change regarding removing setting virtual_application by default, as provider issue needing workaround has been resolved (see here), addressing Issue #211 Source for this change in v0.18.0
Related items
The timeline items about releases of avm-res-web-site, by release date.
- , 15 Sep 2026avm-res-web-site 0.23.0: breaking changesSource
- , 12 Oct 2026avm-res-web-site 0.24.0: breaking changesSource