2016-06-22 7 views
0

Я пытаюсь создать (Windows) VM из файла шаблона развертывания. Для запуска это обычно занимает от 7 до 8 минут, чтобы успешно выполнить развертывание и получить vm в состоянии «Начать». но с течением времени он занимает много времени (20-30) минут или больше, чтобы выполнить развертывание и получить vm. здесь является частью шаблона, который используется для создания виртуальной машины с пользовательской VHD (виртуальный жесткий диск syspreped):Azure Менеджер ресурсов VM занимает много времени в обеспечении

"resources": [ 
{ 
"apiVersion": "2015-06-15", 
"type": "Microsoft.Compute/virtualMachines", 
"name": "[variables('vmName1')]", 
"location": "[variables('location')]", 
"properties": { 
"hardwareProfile": { 
"vmSize": "[variables('vmSize')]" 
}, 
"networkProfile": { 
"networkInterfaces": [ 
{ 
"id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName1'))]" 
} 
] 
}, 
"osProfile": { 
"computerName": "[variables('vmName1')]", 
"adminUsername": "[variables('adminUsername')]", 
"adminPassword": "[variables('adminPassword')]" 
}, 
"storageProfile": { 
"osDisk": { 
"ostype": "windows", 
"name": "windows201606221843019334", 
"vhd": { 
     "uri": "https://armstorageaccount.blob.core.windows.net/storage-31/vm2016062218430193341.vhd" 
     }, 
"image": { 
     "uri": "https://armstorageaccount.blob.core.windows.net/resource-vhd/VM-ARM-os-2016-06-08-37FFE535.vhd" 
     }, 
"caching": "readwrite", 
"createOption": "FromImage" 
}}}}] 

перед запуском выше шаблона я создаю публичный IP-адрес ресурса, используя лазурные библиотеки управления вычислений для .net и ресурс сетевой интерфейсной карты с использованием azure сетевых библиотек управления .net.Names этих ресурсов упоминаются в шаблоне выше, используя соответствующие переменные. Поскольку я использую async-задачи, поэтому оба этих ресурса создаются до запуска предыдущего шаблона. я развертывание шаблона с помощью лазурное SDK управления ресурсами для .net

+0

Как вы пытались выполнить одно и то же развертывание на портале Azure и/или используя Azure PowerShell? – juvchan

+0

Нет, я не использовал powershell для развертывания. Мне нужно сделать это, используя .net sdk для ARM. Каким образом это делается через лазурный портал? –

ответ

0

я думаю, что эта работа для вас

var computeClient = new Microsoft.Azure.Management.Compute.ComputeManagementClient(credentials) { SubscriptionId = subscriptionId }; 
var vm = await computeClient.VirtualMachines.BeginCreateOrUpdate(resourceGroup, vmName, 
      new VirtualMachine 
      { 
       Location = location, 
       HardwareProfile = new HardwareProfile(vmSize), 
       OsProfile = new OSProfile(vmName, vmAdminUsername, vmAdminPassword), 
       StorageProfile = new StorageProfile(
        new ImageReference 
        { 
         Publisher = vmImagePublisher, 
         Offer = vmImageOffer, 
         Sku = vmImageSku, 
         Version = vmImageVersion 
        }, 
        new OSDisk 
        { 
         Name = vmOSDiskName, 
         Vhd = new VirtualHardDisk(@"http://" + storageAccountName + ".blob.core.windows.net/vhds/{vmOSDiskName}.vhd"), 
         Caching = "ReadWrite", 
         CreateOption = "FromImage" 
        }, 
        new List<DataDisk>() 
        { 

        } 
        ), 
       NetworkProfile = new NetworkProfile(
        new[] { new NetworkInterfaceReference { Id = nicId } }), 
       DiagnosticsProfile = new DiagnosticsProfile(
        new BootDiagnostics 
        { 
         Enabled = true, 
         StorageUri = @"http://" + storageAccountName + ".blob.core.windows.net" 
        }) 
      }); 

это использование метода асинхронным, так что вам не нужно ждать.