Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to enable Always On for Azure websites through management/resource management APIs?

I am writing some code for automatic deployment of Azure websites (including the creation of the website in Azure). I'm using the Azure Management Libraries and Azure Resource Management Libraries available in Nuget. Most of it is in place, however I have not been able to find a way to enable the "Always On" property through any of the APIs I've seen. This property can be set through the azure management portal under the Configure tab for a website.

I've checked:

  1. The properties reference on MSDN: http://msdn.microsoft.com/en-us/library/azure/dn236426.aspx
  2. The powershell APIs (get-azureresource, get-azurewebsite, ...) to see if there's a reference to Always On (there's not)
  3. The REST calls the management portal is sending, through Fiddler. Here there is a reference to Always On in a POST going to https://manage.windowsazure.com/Websites/UpdateConfig (which is not part of the management or resource management APIs as far as I know). The exact path in the JSON body that is sent is /siteConfig/AlwaysOn.

So, the question is, is it possible to enable/disable Always On through an "official" API?

Thanks!

like image 329
Hallgeir Avatar asked Nov 05 '14 11:11

Hallgeir


People also ask

How do you call Azure API management?

SAS token access can be applied only for direct management API calls, for example: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ApiManagement/service/{serviceName}/apis? api-version=2021-08-01 .

What Microsoft APIs?

A Microsoft application programming interface (API) is a web service developed by a division of Microsoft, such as Microsoft Azure. APIs allow developers to add the functionality of a feature to their client applications. The API provides the connection between the application and the data sources.


1 Answers

I believe I found the solution!

Using the resource management API, I can set the AlwaysOn property through the siteConfig object. In powershell:

Set-AzureResource -ApiVersion 2014-04-01 -PropertyObject @{"siteConfig" = @{"AlwaysOn" = $false}} -Name mywebsite -ResourceGroupName myrg -ResourceType Microsoft.Web/sites

In the resource management API in .NET it would be similar to this.

The resulting REST call, to https://management.azure.com/subscriptions/xxx/resourcegroups/yyy/providers/Microsoft.Web/sites/zzz?api-version=2014-04-01: { "location": "West Europe", "properties": { "siteConfig": { "AlwaysOn": true } }, "tags": {} }

like image 183
Hallgeir Avatar answered Sep 19 '22 15:09

Hallgeir