Внутренняя ошибка сервера при развертывании ARM-шаблона - PullRequest
0 голосов
/ 09 ноября 2018

Я развернул шаблон руки, который содержит следующие ресурсы

Microsoft.Storage/storageAccount
Microsoft.Sql/servers
Microsoft.Sql/servers/auditPolicies

Теперь все работало, пока я не начал изменять значения для объекта auditPolicies. Вот шаги, которые я предпринял, пока InternalServerError не произошло.

  1. Добавлено свойство auditState и установлено его значение Disabled. Развертывание прошло успешно.
  2. Изменено свойство auditState на Enabled. Развертывание не удалось. В сообщении об ошибке указывается, что требуется storageAccountName.
  3. Добавлен storageAccountName и в качестве его значения указано имя учетной записи хранения. Развертывание не удалось. Ошибка гласит, что storageAccountKey.
  4. Добавлен storageAccountKey и задано значение key1 объекта keys учетной записи хранения. Развертывание не удалось. Внутренняя ошибка сервера - «Произошла ошибка при сохранении настроек аудита, повторите попытку позже». Кроме того, ошибки приводят к бесконечному выполнению развертывания. Хотя я не обеспокоен этим аспектом.

Ниже приведен полный шаблон.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",

  "parameters": {
    "app-name-prefix": {
      "type": "string",
      "minLength": 1
    },
    "app-locations": {
      "type": "array",
      "minLength": 1
    },
    "app-friendly-names": {
      "type": "array",
      "minLength": 1
    },
    "db-user-admin-username": {
      "type": "securestring"
    },
    "db-user-admin-password": {
      "type": "securestring"
    },
    "database-audit-enabled": {
      "defaultValue": "Enabled",
      "allowedValues": [
        "Enabled",
        "Disabled"
      ],
      "type": "string"
    },
    "storage-kind": {
      "defaultValue": "BlobStorage",
      "allowedValues": [
        "StorageV2",
        "BlobStorage"
      ],
      "type": "string"
    },
    "storage-sku": {
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_ZRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Premium_LRS"
      ],
      "type": "string"
    }
  },
  "variables": {
    "db-service-name": "[concat(parameters('app-name-prefix'), '-database-service-')]",
    "storage-name": "[concat(toLower(parameters('app-name-prefix')), 'auditstorage')]"
  },
  "resources": [
    {
      "name": "[concat(variables('storage-name'), parameters('app-friendly-names')[copyIndex()])]",
      "type": "Microsoft.Storage/storageAccounts",
      "sku": {
        "name": "[parameters('storage-sku')]"
      },
      "kind": "[parameters('storage-kind')]",
      "apiVersion": "2018-02-01",
      "location": "[parameters('app-locations')[copyIndex()]]",
      "copy": {
        "count": "[length(parameters('app-locations'))]",
        "name": "storageCopy"
      },
      "properties": {
        "supportsHttpsTrafficOnly": true,
        "accessTier": "Hot",
        "encryption": {
          "services": {
            "blob": {
              "enabled": true
            },
            "file": {
              "enabled": true
            }
          },
          "keySource": "Microsoft.Storage"
        }
      }
    },
    {
      "type": "Microsoft.Sql/servers",
      "name": "[concat(variables('db-service-name'), parameters('app-friendly-names')[copyIndex()])]",
      "apiVersion": "2014-04-01",
      "location": "[parameters('app-locations')[copyIndex()]]",
      "copy": {
        "name": "databaseServiceCopy",
        "count": "[length(parameters('app-locations'))]"
      },
      "properties": {
        "administratorLogin": "[parameters('db-user-admin-username')]",
        "administratorLoginPassword": "[parameters('db-user-admin-password')]",
        "version": "12.0"
      },
      "resources": [
        {
          "type": "auditingPolicies",
          "name": "Default",
          "apiVersion": "2014-04-01",
          "location": "[parameters('app-locations')[copyIndex()]]",
          "properties": {
            "auditingState": "[parameters('database-audit-enabled')]",
            "storageAccountName": "[concat(variables('storage-name'), parameters('app-friendly-names')[copyIndex()])]",
            "storageAccountKey": "[listKeys(concat(variables('storage-name'), parameters('app-friendly-names')[copyIndex()]), '2018-02-01').keys[0].value]"
          },
          "dependsOn": [
            "[resourceId('Microsoft.Sql/servers', concat(variables('db-service-name'), parameters('app-friendly-names')[copyIndex()]))]",
            "storageCopy"
          ]
        }
      ]
    }
  ]
}

Чего мне не хватает, что поможет решить эту проблему? Что мне нужно сделать, чтобы остановить эту внутреннюю ошибку сервера?


Я добавил полный шаблон в соответствии с запросом @Pete

1 Ответ

0 голосов
/ 15 ноября 2018

Я нашел ответ после подключения к службе поддержки Azure.

Тип ресурса: Microsoft.Sql/servers/auditingPolicies больше не поддерживается, и в течение следующих нескольких недель Azure Resource Manager больше не будет поддерживать это полностью.

Этот тип ресурса напрямую связан с аудитом таблиц, который считается устаревшим для аудита больших двоичных объектов. Хотя документация в это время прямо не сообщает об этом. Документы будут обновлены владельцами в ближайшие дни после этого поста.

Для включения аудита необходимо использовать объект Microsoft.Sql/servers/auditingSettings. Документация по этому вопросу поступит, и пока она не будет сделана, вы будете направлены к документации для версии базы данных этого типа ресурса Microsoft.Sql/servers/databases/auditingSettings.

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

Это образец объекта auditingSettings, который я использую вместо объекта auditingPolicies выше. Он вложен точно так же.

{
  "apiVersion": "2017-03-01-preview",
  "type": "auditingSettings",
  "name": "DefaultAuditingSettings",
  "dependsOn": [
    "[resourceId('Microsoft.Sql/servers', concat(variables('db-service-name'), parameters('app-friendly-names')[copyIndex()]))]",
    "storageCopy"
  ],
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts', '/', variables('storage-name'), parameters('app-friendly-names')[copyIndex()]), '2018-02-01').primaryEndpoints.blob]",
    "storageAccountAccessKey": "[listKeys(concat(variables('storage-name'), parameters('app-friendly-names')[copyIndex()]), '2018-02-01').keys[0].value]",
    "storageAccountSubscriptionId": "[subscription().subscriptionId]",
    "isStorageSecondaryKeyInUse": false,
    "retentionDays": "30"
  }
}
...