Политика Azure DeployIfNotExists: дни хранения должны быть больше X дней для сервера SQL - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь разработать политику Azure (json), обеспечивающую, чтобы для заданного SQL Server с включенным аудитом (проверять не нужно) период дней хранения был установлен на значение больше X (скажем, 90 дней в мой случай).

Я пытался использовать эффект deployIfNotExists с полем existenceCondition на retentionDays (больше 90). В части deployment я установил поле на 365.

Я назначил политику группе ресурсов, в которой у меня есть SQL Server с днями аудита и хранения, равными 20.

Но, тем не менее, политика выглядит как «Соответствует», и срок хранения остается прежним. Вот код:

  "if": {
    "field": "type",
    "equals": "Microsoft.Sql/servers"
  },
  "then": {
    "effect": "deployIfNotExists",
    "details": {
      "type": "Microsoft.Sql/servers/auditingSettings",
      "roleDefinitionIds": [
        "/providers/Microsoft.Authorization/roleDefinitions/XXXXXXXX"
      ],
      "existenceCondition": {
        "field": "Microsoft.Sql/servers/auditingSettings/retentionDays",
        "greater": "90"
      },
      "deployment": {
        "properties": {
          "mode": "incremental",
          "template": {
            "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {
              "resourceName": {
                "type": "string"
              },
              "location": {
                "type": "string"
              },
              "retentionDays": {
                "type": "string"
              }
            },
            "variables": {},
            "resources": [{
              "type": "Microsoft.Sql/servers/auditingSettings",
              "apiVersion": "2017-03-01-preview",
              "name": "[concat(parameters('resourceName'), '/Default')]",
              "location": "[parameters('location')]",
              "dependsOn": [],
              "properties": {
                "retentionDays": "[parameters('retentionDays')]"
              }
            }],
            "outputs": {}
          },
          "parameters": {
            "location": {
              "value": "[field('location')]"
            },
            "resourceName": {
              "value": "[field('name')]"
            },
            "retentionDays": {
              "value": "365"
            }
          }
        }
      }
    }
}

Мне интересно, использую ли я правильный псевдоним в нужном месте. Любая подсказка?

Спасибо!

...