2016-08-30 7 views
0

azure ARMからVMを削除しています。 java-sdkを使用してVMを削除すると、VMは正常に削除されますが、ディスクとネットワークは削除されません。 VHDファイルをストレージに保存しました。私もディスクを切り離そうとしましたが、同じことはVMからディスクを切り離しますが、VHDは削除しません。ストレージ内に存在していても操作VHDファイル上に行った後AzureでVMを削除中にディスクを削除する方法java sdkを使用していますか?

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

- :

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

デタッチディスク - :

は、VMを削除します。 VMを削除すると、接続されているすべてのディスクを永久に削除できますか?

+0

参照[VMを削除した後にAzureのリソースマネージャからのVHDの削除](http://stackoverflow.com/a/35210518/5221149)を参照してください。 – Andreas

答えて

0

@PawanSharma VMとそれに関連するすべてのリソースを一度削除する場合は、VMと他のすべてのリソースを含むリソースグループを削除するか、手動でこれらのリソースを1つずつ削除するだけです。

あなたのコードによれば、あなたはAzure SDK for Javaのバージョン1.0.0-betaを使用していると判断していますので、以下のコードを使用してください。

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

参考として、GitHubのsample codeを参照してください。

Azure SDKのないもう1つの方法は、Azure REST API Delete a resource groupを使用することです。これは、理解がより明確な方法だと思います。

+0

@ peter-pan-msftこれは動作しています。私はこれが働いているのを試みました。リソースグループを削除しないように自分の要件に応じてのみディスクを削除します。ディスクを削除するものはありますか?私はストレージからBLOBを削除しました。それがうまくいくかどうかは分かりますか? –

+0

@PawanSharma REST API ['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-) ASMでのAzure Java SDKの使用 –

+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

関連する問題