title: How to make AzureRM not to drop previously configured properties of `Microsoft.Web/sites/config` at next deployment?
body: <p>This is current configuration, <code>https://management.azure.com/subscriptions/&lt;subid&gt;/resourceGroups/&lt;groupid&gt;/providers/Microsoft.Web/sites/&lt;sitename&gt;/config/logs?api-version=2018-02-01</code> :</p>
  
  <pre><code>{
    "id": "/subscriptions/&lt;subid&gt;/resourceGroups/&lt;group&gt;/providers/Microsoft.Web/sites/&lt;sitename&gt;/config/logs",
    "name": "logs",
    "type": "Microsoft.Web/sites/config",
    "location": "West Europe",
    "tags": {
      "displayName": "Website",
    },
    "properties": {
      "applicationLogs": {
        "fileSystem": {
          "level": "Off"
        },
        "azureTableStorage": {
          "level": "Off",
          "sasUrl": null
        },
        "azureBlobStorage": {
          "level": "Verbose",
          "sasUrl": "&lt;here is fully specified sasUrl&gt;",
          "retentionInDays": 0
        }
      },
      // ...
  </code></pre>
  
  <p>This is done in order to configure that <code>SasUrl</code> there which is done only after we have SA, and using Powershell. When <code>New-AzureRmResourceGroupDeployment</code> run with this template, those properties are lost (sasUrl and other). </p>
  
  <pre><code>{
    "apiVersion": "2016-08-01",
    "name": "[variables('prodWebAppName')]",
    "type": "Microsoft.Web/sites",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[variables('appServicePlanName')]"
    ],
    "tags": {
      "displayName": "Website"
    },
    "properties": {
      "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
      "hostNames": [
        // ...
      ],
      "enabledHostNames": [
        // ..
      ],
      "defaultHostName": "[concat(variables('prodWebAppName'), '.azurewebsites.net')]",
      "siteConfig": {
        "netFrameworkVersion": "v4.6",
        "phpVersion": "Off",
        "alwaysOn": true, 
        "webSocketsEnabled":  true, 
        "appSettings": [
          // ... 
        ],
        "connectionStrings": [
          // ...
        ]
      }
    },
  // .. and then slots configuration 
  </code></pre>
  
  <p>That seems to happen because those <code>netFrameworkVersion</code> and like settings are under <code>Microsoft.Web/sites/&lt;sitename&gt;/config</code> also. Probably it should be put in a separate json template to run for this site or slot specifically. The template is used to provision all environments (AAT, QA, Prod) at once which makes things more complex.</p>
  
  <p>Also, do you think it is right to make QA and AAT in App Service slots like MS advertise at <a href="https://docs.microsoft.com/en-us/azure/app-service/web-sites-staged-publishing" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/azure/app-service/web-sites-staged-publishing</a>? To my mind this does not suit well for script/template based continuous deployment/delivery for not simple systems.</p>