As Azure grows and resources continue to improve, Microsoft will continuously retire old and outdated resources. Any resources not migrated by the retirement date may stop working as Microsoft shuts down the endpoints on which they run. Below is a list of all resources that will be retired within the next six months.

DateRetiring ResourceFeature/VersionNew ResourceMigration Plan
2025-02-28Azure Cache for RedisTLS 1.0/1.1TLS 1.2Update
2025-02-28Service BusTLS 1.0/1.1TLS 1.2Update
2025-02-28Event GridTLS 1.0/1.1TLS 1.2Update
2025-03-28Azure Database for PostgreSQLAzure Database for PostgreSQL Single ServerAzure Database for PostgreSQL Flexible ServerMigrate
2025-03-31Azure SynapseAzure Synapse Runtime for Apache Spark 3.3Azure Synapse Runtime for Apache Spark 3.4Upgrade
2025-03-31Cognitive ServicesQnA MakerCustom Question AnsweringMigrate
2025-03-31HDInsight4.0/5.05.1Migrate
2025-03-31Virtual MachinesStandard_NC24rs_v3NC24ads_A100_v4 (or similar)Resize
2025-03-31Azure Spring AppsStandard consumption and dedicated plan (preview)Azure Container AppsMigrate
**Updated 11/10/24**

There are several ways to determine if your environment is running these retiring resources.

Email

Microsoft will send out emails regularly with information about resources in your tenant that are being retired. It will include a list of resources affected, information about what is being retired, and a plan to transition to the latest version of each resource.

Azure Retiring Resources Email

Portal

When accessing resources in the portal, Microsoft will show a notification on any resource that is being retired. It may include a link to documentation on transitioning to the latest version and a link to do a step-by-step migration using their wizard.

Azure Retiring Resources Portal
Azure Retiring Resources Email Migration Link

Azure Advisor

Azure provides a resource called Advisor, which contains a Workbook that compiles a list of all resources announced as retiring. To access this, log into the portal and go to Advisor. On the left panel, select Workbooks. Choose the Service Retirement (Preview) from the list by clicking on it. Here, you can see a list of all resources being retired and any affected resources in your tenant. You can edit and save the Workbook and pin it to a Dashboard for easy access.

Azure Retiring Resources Azure Advisor

CLI

Either Azure CLI or PowerShell can be used to search for resources programmatically.  In the below example, the Azure CLI can be used to find all Classic resources. 

# Define the tenant ID
$tenantId = "XXXXXXXXXXX"

# Connect to Azure with the specific tenant
az login --tenant $tenantId

# Get all subscriptions in the specified tenant
$subscriptions = az account list --query "[?tenantId=='$tenantId'].{id:id, name:name}" --output json | ConvertFrom-Json

# Initialize array to hold all classic resources across all subscriptions
$allClassicResources = @()

# Loop through each subscription
foreach ($subscription in $subscriptions) {
    Write-Output "Processing subscription: $($subscription.name)"

    # Set the current subscription context
    az account set --subscription $subscription.id

    # List classic resources in the current subscription
    $classicResources = az resource list --query "[?contains(type, 'Classic')]" --output json | ConvertFrom-Json

    # Add subscription ID and name to each resource for context
    foreach ($resource in $classicResources) {
        $resource | Add-Member -MemberType NoteProperty -Name SubscriptionId -Value $subscription.id
        $resource | Add-Member -MemberType NoteProperty -Name SubscriptionName -Value $subscription.name
        $allClassicResources += $resource
    }
}

# Display the classic resources
if ($allClassicResources.Count -eq 0) {
    Write-Output "No classic resources found across all subscriptions."
} else {
    Write-Output "Classic resources found across all subscriptions:"
    $allClassicResources | ForEach-Object {
        Write-Output "Subscription: $($_.SubscriptionName) ($($_.SubscriptionId))"
        Write-Output "Name: $($_.name)"
        Write-Output "Type: $($_.type)"
        Write-Output "Resource Group: $($_.resourceGroup)"
        Write-Output "Location: $($_.location)"
        Write-Output "---------------------------"
    }
}

For more information or any questions, please contact us.