Назад | Перейти на главную страницу

Шаблон Azure ARM - несколько Microsoft.Compute / virtualMachines / расширений для виртуальной машины

Я пытаюсь выполнить автоматическое восстановление bacpac на виртуальную машину azure mssql, когда она подготовлена, но не могу сделать это с помощью расширений пользовательских сценариев. Я сгенерировал шаблон ARM для виртуальной машины Azure MSSSQL, используя сценарии автоматизации на портале, и если я увижу это подробно, то вижу, что он уже использует настраиваемое расширение для настройки mssql при подготовке сообщений виртуальной машины. Если мне нужно восстановить базу данных поверх нее после подготовки, мне понадобится другой ресурс расширения пользовательского сценария. Я не могу придумать другого пути. Но что бы я ни пытался, во втором расширении пользовательского скрипта, теге DependsOn, продолжает появляться синтаксическая ошибка. любая помощь в этом будет оценена. Обратите внимание, я пробовал добавлять имена ресурсов различными способами в DependsOn, но продолжаю получать ошибку.

"message": "Ошибка проверки шаблона развертывания: 'Ресурс шаблона' dbrestore 'в строке' 1 'и столбце' 7717 'недействителен: идентификатор ресурса' bugtvm / SqlIaasExtension 'неверен. См. https://aka.ms/arm-template-expressions/#reference для подробностей использования .. См. https://aka.ms/arm-template-expressions для подробностей использования. '. "," target ": null

Спасибо

{
  "name": "[parameters('virtualMachineName')]",
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2016-04-30-preview",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]",
    "[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]"
  ],
  "properties": {
    "osProfile": {
      "computerName": "[parameters('virtualMachineName')]",
      "adminUsername": "[parameters('adminUsername')]",
      "adminPassword": "[parameters('adminPassword')]",
      "windowsConfiguration": {
        "provisionVmAgent": "true"
      }
    },
    "hardwareProfile": {
      "vmSize": "[parameters('virtualMachineSize')]"
    },
    "storageProfile": {
      "imageReference": {
        "publisher": "MicrosoftSQLServer",
        "offer": "SQL2016SP1-WS2016",
        "sku": "Web",
        "version": "latest"
      },
      "osDisk": {
        "createOption": "fromImage",
        "managedDisk": {
          "storageAccountType": "Standard_LRS"
        }
      },
      "dataDisks": [
        {
          "createOption": "empty",
          "lun": 0,
          "diskSizeGB": "128",
          "caching": "ReadOnly",
          "managedDisk": {
            "storageAccountType": "Standard_LRS"
          }
        }
      ]
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]"
        }
      ]
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": true,
        "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]"
      }
    }
  }
},
{
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat(parameters('virtualMachineName'), '/SqlIaasExtension')]",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]"
  ],
  "properties": {
    "type": "SqlIaaSAgent",
    "publisher": "Microsoft.SqlServer.Management",
    "typeHandlerVersion": "1.2",
    "autoUpgradeMinorVersion": "true",
    "settings": {
      "AutoTelemetrySettings": {
        "Region": "[parameters('location')]"
      },
      "AutoPatchingSettings": {
        "PatchCategory": "WindowsMandatoryUpdates",
        "Enable": true,
        "DayOfWeek": "[parameters('sqlAutopatchingDayOfWeek')]",
        "MaintenanceWindowStartingHour": "[parameters('sqlAutopatchingStartHour')]",
        "MaintenanceWindowDuration": "[parameters('sqlAutopatchingWindowDuration')]"
      },
      "AutoBackupSettings": {
        "Enable": true,
        "RetentionPeriod": "[parameters('sqlAutobackupRetentionPeriod')]",
        "EnableEncryption": false
      },
      "KeyVaultCredentialSettings": {
        "Enable": false,
        "CredentialName": ""
      },
      "ServerConfigurationsManagementSettings": {
        "SQLConnectivityUpdateSettings": {
          "ConnectivityType": "[parameters('sqlConnectivityType')]",
          "Port": "[parameters('sqlPortNumber')]"
        },
        "SQLWorkloadTypeUpdateSettings": {
          "SQLWorkloadType": "[parameters('sqlStorageWorkloadType')]"
        },
        "SQLStorageUpdateSettings": {
          "DiskCount": "[parameters('sqlStorageDisksCount')]",
          "NumberOfColumns": "[parameters('sqlStorageDisksCount')]",
          "StartingDeviceID": "[parameters('sqlStorageStartingDeviceId')]",
          "DiskConfigurationType": "[parameters('sqlStorageDisksConfigurationType')]"
        },
        "AdditionalFeaturesServerConfigurations": {
          "IsRServicesEnabled": "[parameters('rServicesEnabled')]"
        }
      }
    },
    "protectedSettings": {
      "StorageUrl": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]",
      "StorageAccessKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName')), '2015-06-15').key1]",
      "SQLAuthUpdateUserName": "[parameters('sqlAuthenticationLogin')]",
      "SQLAuthUpdatePassword": "[parameters('sqlAuthenticationPassword')]"
    }
  }
},
{
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "dbrestore",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName') )]",
    "[concat(parameters('virtualMachineName'),'/', 'SqlIaasExtension')]"
  ],
  "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://somestoragehere.blob.core.windows.net/dbbackups/restorescript.ps1"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "powershell -ExecutionPolicy Unrestricted -File restorescript.ps1",
      "storageAccountName": "some storage here",
      "storageAccountKey": "some key here"
    }
  }
},

Основная причина - "[concat(parameters('virtualMachineName'),'/', 'SqlIaasExtension')]" не существует. Вы должны изменить его, как показано ниже:

   "[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'),'/extensions/SqlIaasExtension')]"

Вы можете проверить это ссылка на сайт.

Обновление от OP:

Ошибка сегмента произошла после того, как я изменил поле имени с «восстановленоb» на "[concat(parameters('virtualMachineName'),'/restoredb')]" . это не имело ничего общего с несколькими customscriptextensions