2016-08-30 4 views
0

Я удаляю VM из azure ARM. Когда я удалял VM с помощью java-sdk, удаленная виртуальная машина удалялась, но диски и сеть не удалялись. Он хранит файлы VHD на складе. Я попытался также отсоединить диск, но он будет отсоединять диск от VM, но не удалять VHD.Как удалить диски во время удаления VM в Azure ARM с помощью java sdk?

Delete VM: -

azure.virtualMachines().delete("resourceGroupName", "vmName"); 

Detach диск: -

azure.virtualMachines().getByGroup("resourceGroupName", "vmName"); 
vm.update().withoutDataDisk("diskName").apply(); 

даже после выполнения операции над VHD файл существует в хранилище. Как удалить все прикрепленные диски при удалении VM ?.

+0

См [Удаление VHD от Azure диспетчера ресурсов после удаления VM] (http://stackoverflow.com/a/35210518/5221149). – Andreas

ответ

0

@PawanSharma Как я уже знал, если вы хотите удалить виртуальную машину и связанные с ней ресурсы сразу, вам нужно удалить группу ресурсов, которая включает в себя виртуальную машину и все остальные ресурсы, или же вручную удалить эти ресурсы вручную ,

Согласно вашему коду, я считаю, что вы используете версию Azure SDK для Java версии 1.0.0-beta, поэтому я предлагаю вам попробовать использовать приведенный ниже код.

azure.resourceGroups().delete("<resource-group-name>"); 

В качестве ссылки, вы можете обратиться к sample code на GitHub.

Между прочим, в противном случае без Azure SDK используется API Azerc REST Delete a resource group, который, я думаю, более понятен для понимания.

+0

@ peter-pan-msft Это работает. Я попробовал это, он работает. В соответствии с моими требованиями не удалять группу ресурсов удалять только диск. Есть что-нибудь для удаления диска. Я нашел удаление блоба из хранилища. Есть ли у вас какие-либо идеи, будет ли это работать или нет. –

+0

@PawanSharma Попробуйте использовать API REST ['Delete VM Image'] (https://msdn.microsoft.com/en-us/library/azure/dn499769.aspx) или функцию [' VirtualMachineVMImageOperations.deleteAsync (String vmImageName , boolean deleteFromStorage) '] (http://azure.github.io/azure-sdk-for-java/com/microsoft/windowsazure/management/compute/VirtualMachineVMImageOperations.html#deleteAsync-java.lang.String-boolean-) Azure Java SDK в ASM. –

+0

@ peter-pan-msft Azure ASM имеет другую концепцию. Это возможно в ASM, как вы предложили, но я ищу Azure ARM SDK. –

0

Это решение Azure-Storage. Вы должны удалить файлы blob vhd из прикрепленной учетной записи хранилища.

 CloudStorageAccount cloudStorageAccount = CloudStorageAccount.parse(storageConnectionString); 
     CloudBlobClient cloudBlobClient = cloudStorageAccount.createCloudBlobClient(); 
     Iterable<CloudBlobContainer> containersList= cloudBlobClient.listContainers(); 
     for(CloudBlobContainer container:containersList) 
     { 
      String currentContainerName = container.getName(); 
      logger.debug("Current Container Name : "+currentContainerName); 
      CloudBlobContainer blobContainer = cloudBlobClient.getContainerReference(currentContainerName); 
      CloudPageBlob pageBlob = blobContainer.getPageBlobReference(diskName); 
      if(pageBlob.exists()) 
       return pageBlob.deleteIfExists(); 
     } 

Более подробно см azure storage git