2

如何获取从使用 ARM 创建的 azure VM 捕获的映像,以便我可以将其用作我随后使用 azure java sdk 创建的所有 VM 的基础映像?

4

2 回答 2

1

有一个官方博客可以帮助您开始使用 Azure Java SDK for Service Manage。请参阅https://azure.microsoft.com/en-us/blog/getting-started-with-the-azure-java-management-libraries/

为了实现这个需求,你需要在你的 Java 项目中添加一些 maven 包。请参阅下面的依赖项。

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt</artifactId>
    <version>0.9.0</version>
</dependency>
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt-compute</artifactId>
    <version>0.9.0</version>
</dependency>

您可以修改下面的一些代码以实现列出自定义图像,而不是Calling the Azure API to Get a List of Regions博客部分的代码。

VirtualMachineVMImageOperations virtualMachineVMImageOperations = client.getVirtualMachineVMImagesOperations();
VirtualMachineVMImageListResponse virtualMachineVMImageListResponse = virtualMachineVMImageOperations.list();
List<VirtualMachineVMImage> list = virtualMachineVMImageListResponse.getVMImages();
for(VirtualMachineVMImage virtualMachineVMImage: list) {
    String vmImageName = virtualMachineVMImage.getName();
    System.out.println(vmImageName);
}
于 2015-12-14T12:39:39.510 回答
0

最近 azure 发布了 Java SDK 1.0.0 作为 LTS 版本。

请参考下面的代码使用自定义图像创建一个虚拟机..

       VirtualMachineCustomImage customImage = azure.virtualMachineCustomImages().getByResourceGroup("resource_gr_name", "image_name");

       Creatable<VirtualMachine> linuxVM = azure.virtualMachines().define(vmName)
               .withRegion(Region.US_WEST)
               .withExistingResourceGroup("rishi")
               .withExistingPrimaryNetwork(network)
               .withSubnet("default") // Referencing the default subnet name when no name specified at creation
               .withPrimaryPrivateIPAddressDynamic()
               .withoutPrimaryPublicIPAddress()
               .withLinuxCustomImage(customImage.id())
               .withRootUsername("centos")
               .withRootPassword("mdfxrJ68")
               .withNewDataDisk(19)
               .withDataDiskDefaultCachingType(CachingTypes.READ_WRITE)
               .withDataDiskDefaultStorageAccountType(StorageAccountTypes.PREMIUM_LRS)
               .withExistingStorageAccount(storageAccount)
               .withOSDiskSizeInGB(10)
               .withExistingStorageAccount(storageAccount)
               .withSize(VirtualMachineSizeTypes.STANDARD_DS1_V2);


        azure.virtualMachines().create(linuxVM);
于 2017-05-30T07:55:29.077 回答