如何使用Azure Java SDK创建启用可信启动的Azure虚拟机?
在Azure Java SDK中创建启用可信启动的虚拟机
要将配置好SecurityProfile的VirtualMachineInner传入AzureResourceManager.virtualMachine().create()方法,核心是利用VM定义阶段的.withInner()方法,把自定义的内部模型对象注入到创建流程中。以下是完整的实现示例:
// 1. 构建可信启动所需的SecurityProfile SecurityProfile securityProfile = new SecurityProfile() .withSecurityType(SecurityTypes.TRUSTED_LAUNCH) .withUefiSettings(new UefiSettings().withSecureBootEnabled(true).withVTpmEnabled(true)) .withEncryptionAtHost(true); VirtualMachineInner vmi = new VirtualMachineInner(); vmi.withSecurityProfile(securityProfile); // 2. 定义VM的基础配置(需根据实际环境调整参数) VirtualMachine.DefinitionStages.WithCreate vmDefinition = azureResourceManager.virtualMachines() .define("your-vm-name") .withRegion(Region.US_EAST) .withExistingResourceGroup("your-resource-group-name") .withExistingPrimaryNetworkInterface(networkInterface) // 需提前创建好网卡 .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2022-Datacenter") .withAdminUsername("admin-user") .withAdminPassword("your-strong-password") .withSize(VirtualMachineSizeTypes.STANDARD_D2S_V5); // 需选用支持Gen2的VM SKU // 3. 注入自定义VirtualMachineInner并创建VM VirtualMachine createdVm = vmDefinition .withInner(vmi) // 传入包含SecurityProfile的内部对象 .create();
关键说明
- 必须选用支持第2代虚拟机的SKU(如
STANDARD_D2S_V5这类后缀带V5的实例),否则可信启动配置会失效。 .withInner()方法会将自定义的VirtualMachineInner属性与之前定义的基础配置合并,优先级高于基础配置中的重复属性。
内容的提问来源于stack exchange,提问作者kanade96
相关产品推荐
相关产品推荐

