Search code examples
c#azureazure-resource-managerazure-rm-template

Azure Resource Manager - backupLongTermRetentionPolicies - Error "WeekOfYear is required to be set between 1 and 52 in order to set yearly retention."


We are using Azure Resource Manager templates (ARM templates) deployment scripts and would like to set different retention policies if we are in production or test.

Using export template for our current Dev SQL server gives these values:

enter image description here

If these values are copied to our deployment script as is:

{
    "type": "Microsoft.Sql/servers/databases/backupLongTermRetentionPolicies",
    "apiVersion": "2017-03-01-preview",
    "name": "[concat(parameters('servers_prod_repository_name'), '/', parameters('servers_prod_repository_name'), '/default')]",
    "dependsOn": [
        "[resourceId('Microsoft.Sql/servers/databases', parameters('servers_prod_repository_name'), parameters('servers_prod_repository_name'))]",
        "[resourceId('Microsoft.Sql/servers', parameters('servers_prod_repository_name'))]"
    ],
    "properties": {
        "weeklyRetention": "PT0S",
        "monthlyRetention": "PT0S",
        "yearlyRetention": "PT0S",
        "weekOfYear": 0
    }
},

I get the following error:

Resource Microsoft.Sql/servers/databases/backupLongTermRetentionPolicies 'our-sql-server/our-sql-server/default' failed with message '{ 11:14:50 - "error": { 11:14:50 - "code": "LongTermRetentionMissingWeekOfYear", 11:14:50 - "message": "WeekOfYear is required to be set between 1 and 52 in order to set yearly retention." 11:14:50 - } 11:14:50 - }'

The error "WeekOfYear is required to be set between 1 and 52 in order to set yearly retention." is in the expected responses but given that the value is there as standard it seems like a bug with yearlyRetention set to PT0S.

https://learn.microsoft.com/en-us/rest/api/sql/managedinstancelongtermretentionpolicies/createorupdate


Solution

  • Solved by removing monthlyRetention, yearlyRetention and weekOfYear parameters.

    Parameters:

    "weeklyRetention": {
      "value": "P4W"
    },
    

    deployscript:

    {
        "type": "Microsoft.Sql/servers/databases/backupLongTermRetentionPolicies",
        "apiVersion": "2017-03-01-preview",
        "name": "[concat(parameters('servers_prod_repository_name'), '/', parameters('servers_prod_repository_name'), '/default')]",
        "dependsOn": [
            "[resourceId('Microsoft.Sql/servers/databases', parameters('servers_prod_repository_name'), parameters('servers_prod_repository_name'))]",
            "[resourceId('Microsoft.Sql/servers', parameters('servers_prod_repository_name'))]"
        ],
        "properties": {
            "weeklyRetention": "[parameters('weeklyRetention')]"
        }
    },