如何获取从使用 ARM 创建的 azure VM 捕获的映像,以便我可以将其用作我随后使用 azure java sdk 创建的所有 VM 的基础映像?
问问题
517 次
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 回答