Azure App Service Team Blog

How the App Service team functions

Deprecating Service Management APIs support for Azure App Services

At Build 2014, Azure announced RESTful API for resource management called Azure Resource Manager and a shiny new Azure portal. In the years since Azure App Service has  implemented support for Azure Resource Manager. If you manage your App Service resources through the portal or through automation against the REST API or any of these SDKs, clients or tools or deploy resources through deployment templates, you are already using Azure Resource Manager. If, however, you also have automation built against the legacy Azure Service Management APIs, this announcement affects you.

Azure App Service resource management will be supported only through Azure Resource Manager. Azure Service Management support will be retired on June 30, 2018. The Service Management APIs are archaic and not well suited for the modern cloud. Supporting Service Management APIs any longer will hold us back from delivering premium developer experience and control plane scale. Customers currently using the Service Management APIs will be better served by moving to Resource Manager. Azure Resource Manager has many benefits over Service Management like robust deployment model, role-based access and better API support for existing and new features. For more information,  see Difference between Azure Service Manager and Azure Resource Manager.

Determining if you are using Azure Service Management APIs

A good way to tell if your automation (SDK/tool/client) uses Service Management APIs is to see if that automation uses Web Spaces or Resource Groups to manage (deploy/create/update/start/stop/configure etc.) resources. To uniquely identify and manage resources, automation needs a logical grouping mechanism that is also the uniqueness scope for the resources. For Service Management APIs for Azure App Service that grouping is Web Spaces, while for Azure Resource Manager it is Resource Groups. If your automation (SDK/tool/client) uses Web Spaces to manage resources you are using Azure Service Management and we recommend that you switch to the Azure Resource Manager.

UPDATE::

App Service diagnostics now has a detector that can identify any soon to be deprecated APIs called within the last 24 hours on your web app or associated resources. Once the API in question is no longer called, the detector will let show ‘green’ for that API within 24 hours.

  • From the app service overview blade click on “Diagnose and solve problems”.

 

  • Once the detectors have loaded click on “Deprecating APIs” under the section “Management and Configuration”. This will open up a new tab “Deprecating APIs”

  • Once the detector execution completes, you will have names of all the API clients/tools used to call the deprecating APIs and the actual calls.

Authentication

Service Management supports authentication using Azure Active Directory or management certificates. For Resource Manager authentication is built around Azure Active Directory apps and interactive user access. To learn more, see Resource Manager API Authentication. If your automation must use certificates for management, you can achieve that by Authenticating to Azure Resource Manager using AAD and certificates.

Resource Deployment

Resource Manager has a robust deployment engine with declarative resource description. To understand how the resource deployment differences between the two, see  Resource Manager Deployment Model. Resource manager supports resource deployment via deployment templates. Additionally, starting from Microsoft Azure SDK for .NET 2.9, resource deployment via Visual Studio is also supported. For more information, see Deploying resources and code through Visual Studio.

Directly calling the API

If you want to code against the Resource Manager REST API directly, refer to Azure App Service REST API documentation. ARMClient and Azure Resource Explorer are great tools to play with and discover the shape of the App Service Resource Manager API. For more information on ARMClient, see ARMClient: a command line tool for the Azure API.

SDKs and tools

Resource Manager offers SDKs and tools in a large set of languages, frameworks and platforms. These include but are not limited to .NET, Node, Java, Ruby, Python, Go, PowerShell and Azure CLI. Detailed documentation, tutorials and examples are available here.

App Service Resource Metrics

If your automation consumed the App Service resource metrics API, we recommend that you switch over to the Azure Resource Manager Monitoring APIs. While we still offer App Service specific metrics API, we plan on deprecating them soon. The Resource Manager Monitoring APIs are the common way of interacting with metrics across any resource on any service within Azure. For more information, see  metrics supported by Azure Monitor.

Please make sure to move all your automation and deployment tools to use new API’s before June 30th 2018 so that you do not experience any service interruptions and benefit from superior deployment and management capabilities of Azure Resource Manager.