Java 创建 ARM 虚拟机磁盘类型选择的问题
来源:互联网 发布:k11防水和js防水涂料 编辑:程序博客网 时间:2024/05/29 11:43
问题描述
在Azure 门户创建 ARM 虚拟机时,我们直接可以选择虚拟机的磁盘类型,但是在 Azure Management Libraries for Java 的 API 中我们无法找到直接设置磁盘类型的 API.默认创建的磁盘类型是 HDD,如何通过 API 设置磁盘类型?
问题分析
系统磁盘或数据磁盘的类型取决于使用的存储账户类型,如果是基于普通存储账户创建的磁盘,则磁盘类型为 HDD;如果是基于高级存储创建的磁盘,则磁盘类型为 SDD。更多信息参考:
- 关于 Azure Windows VM 的磁盘和 VHD(磁盘类型小节)
- 高性能高级存储以及非托管 Azure VM 磁盘
解决方法
认证凭据
在使用 Azure Management Libraries for Java 时,我们需要通过 AD Application 进行授权认证。建议使用最新版 Powershell 按以下脚本操作:
# 1.在 PowerShell 中,登录 Azure 账户Login-AzureRmAccount -EnvironmentName AzureChinaCloud# 2.选择当前订阅 IDSet-AzureRmContext -SubscriptionId "订阅 ID"# 3.创建 AD Application$azureAdApplication = New-AzureRmADApplication -DisplayName "georgeapp" -HomePage "https://www.georgeapp.org" -IdentifierUris "https://www.georgeapp.org/example" -Password "1QAZxsw2"$azureAdApplication# 4.为你的 AD 应用创建服务凭证New-AzureRmADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId# 5.为服务凭证授权。如果想了解更多内容,请参考:https://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-what-is/New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $azureAdApplication.ApplicationId
执行上述操作后,就可以获取可用的认证凭据信息:
- tentant-id:第二步执行完成后返回
- application-id:第三步执行完成后返回
- application-password:第三步中设置的 Password
代码实现
public void createWindows(String resourceGroupName,String vmName,String vmStorageAccountName,String vmUserName,String vmPassword,KnownWindowsVirtualMachineImage vmImage,Region vmRegion,VirtualMachineSizeTypes vmSize) throws Exception {if (azure == null) { return;}StorageAccount storageAccount =azure.storageAccounts().getByGroup(resourceGroupName, vmStorageAccountName);VirtualMachine windowsVM = azure.virtualMachines().define(vmName).withRegion(vmRegion).withNewResourceGroup(resourceGroupName).withNewPrimaryNetwork("10.0.0.0/28").withPrimaryPrivateIpAddressDynamic().withoutPrimaryPublicIpAddress().withPopularWindowsImage(vmImage).withAdminUserName(vmUserName).withPassword(vmPassword).withNewDataDisk(10).withExistingStorageAccount(storageAccount).withSize(vmSize).create();}@org.junit.Testpublic void test() throws Exception {VmOperation vmOp = new VmOperation("tentant-id","application-id","application-password","subId");vmOp.createWindows("资源组","虚拟机名称","存储账户名称","虚拟机 RDP 用户名","虚拟机 RDP 密码","虚拟机 Image","虚拟机 Region","虚拟机 Size");
测试结果
设定为普通存储账户
设定为高级存储账户
立即访问http://market.azure.cn
阅读全文
0 0
- Java 创建 ARM 虚拟机磁盘类型选择的问题
- Java 创建 ARM 虚拟机磁盘类型选择的问题
- ARM SERVER 虚拟机挂载多块磁盘问题的解决方法
- VMware 创建虚拟机的磁盘操作
- esxi 虚拟机磁盘类型
- java虚拟机无法创建的问题
- 如何处理托管磁盘 OS 盘无法创建虚拟机的问题
- vmware 虚拟机删除磁盘带来的问题
- RedHat虚拟机打不开磁盘问题的解决办法
- [Azure]使用Powershell调整ARM虚拟机的系统磁盘和数据磁盘大小
- [Azure]ARM虚拟机整机磁盘快照[1]——创建快照
- 使用版本 1.0.0 的 Azure ARM SDK for Java 创建虚拟机时报错
- 使用版本 1.0.0 的 Azure ARM SDK for Java 创建虚拟机时报错
- 虚拟机网络类型选择
- VMWARE虚拟机创建共享磁盘
- VMWARE虚拟机创建共享磁盘
- Vmware虚拟机创建共享磁盘
- linux虚拟机创建共享磁盘
- 经验分享 | WEB前端开发想要月薪2W吗?先掌握这些技能
- apache-poi 数据类型判断
- 小镇故事介绍 这个世界很喧哗,有的时候只需要一个人静一静
- 双调排序
- 在linux上实现类似window的ghost功能
- Java 创建 ARM 虚拟机磁盘类型选择的问题
- DefaultHttpClient,HttpClient,DefaultHttpClient使用详解
- Redis知识点详解
- win7进入系统是停留在“正在启动windows系统中”
- 做到这一点,你也可以成为优秀的程序员
- MySql InnonDB锁(未全部完成)
- Leetcode c语言-Remove Element
- sstream的一些技巧
- Python 基于固定 IP 来命名 ARM 虚拟机的实现