Migrate API Management services to Premium SKU to support Availability Zones
Impact:HighCategory:High Availability
APRL GUID:baf3bfc0-32a2-4c0c-926d-c9bf0b49808e
Description:
Upgrading the API Management instance to the Premium SKU adds support for Availability Zones, enhancing availability and resilience by distributing services across physically separate locations within Azure regions.
Click the Azure Resource Graph tab to view the query
//AzureResourceGraphQuery//FindallAPIManagementinstancesthataren't Premium
resources
| where type =~ 'Microsoft.ApiManagement/service'
| extend skuName = sku.name
| where tolower(skuName) != tolower('premium')
| project recommendationId = "baf3bfc0-32a2-4c0c-926d-c9bf0b49808e", name, id, tags, param1=strcat("SKU: ", skuName)
Enable Availability Zones on Premium API Management instances
Impact:HighCategory:High Availability
APRL GUID:740f2c1c-8857-4648-80eb-47d2c56d5a50
Description:
Zone redundancy for APIM instances ensures the gateway and control plane (Management API, developer portal, Git configuration) are replicated across datacenters in physically separated zones, boosting resilience to zone failures.
Click the Azure Resource Graph tab to view the query
//AzureResourceGraphQuery//FindallPremiumAPIManagementinstancesthataren't zone redundant
resources
| where type =~ 'Microsoft.ApiManagement/service'
| where location in~ ("australiaeast", "brazilsouth", "canadacentral", "centralindia", "centralus", "eastasia", "eastus", "eastus2", "francecentral", "germanywestcentral", "israelcentral", "italynorth", "japaneast", "japanwest", "koreacentral", "mexicocentral", "newzealandnorth", "northeurope", "norwayeast", "polandcentral", "qatarcentral", "southafricanorth", "southcentralus", "southeastasia", "spaincentral", "swedencentral", "switzerlandnorth", "uaenorth", "uksouth", "westeurope", "westus2", "westus3", "usgovvirginia", "chinanorth3")
| extend skuName = sku.name
| where tolower(skuName) == tolower('premium')
| where isnull(zones) or array_length(zones) < 2
| extend zoneValue = iff((isnull(zones)), "null", zones)
| project recommendationId = "740f2c1c-8857-4648-80eb-47d2c56d5a50", name, id, tags, param1="Zones: No Zone or Zonal", param2=strcat("Zones value: ", zoneValue )
Azure API Management platform version should be stv2
Impact:HighCategory:High Availability
APRL GUID:e35cf148-8eee-49d1-a1c9-956160f99e0b
Description:
stv1 instances were deprecated on August 31, 2024. If not migrated to stv2 by then, auto-migration will occur. In some cases, due to technical limitations, services may be shut down in March 2025.
Click the Azure Resource Graph tab to view the query
//AzureResourceGraphQuery//FindallAPIManagementinstancesthataren't upgraded to platform version stv2
resources
| where type =~ 'Microsoft.ApiManagement/service'
| extend plat_version = properties.platformVersion
| extend skuName = sku.name
| where tolower(plat_version) != tolower('stv2')
| project recommendationId = "e35cf148-8eee-49d1-a1c9-956160f99e0b", name, id, tags, param1=strcat("Platform Version: ", plat_version) , param2=strcat("SKU: ", skuName)
Enable auto-scale for production workloads on API Management services
Impact:LowCategory:High Availability
APRL GUID:c79680ea-de85-44fa-a596-f31fa17a952f
Description:
Use API Management with auto-scale for high availability in workloads that experience variable traffic patterns. There are several limitations with auto-scale, so review the documentation to ensure it meets your requirements.