我在azure门户中部署了云服务。部署成功。我制作了一些azure java sdk代码,如下所示,
ComputeManagementClient cmclient = ComputeManagementService.create(config);
VirtualMachineOperations vmoperat = cmclient.getVirtualMachinesOperations();
VirtualMachineGetResponse vmresp = vmoperat.get("AzurecloudDNS", AzurecloudDNSStaging20160613193121","WorkerRole1_IN_0");
但它引发了以下异常,
Exception in thread "main" com.microsoft.windowsazure.exception.ServiceException: ResourceNotFound: Role WorkerRole1_IN_0 was not found in the currently deployed service.
at com.microsoft.windowsazure.exception.ServiceException.createFromXml(ServiceException.java:206)
at com.microsoft.windowsazure.management.compute.VirtualMachineOperationsImpl.get(VirtualMachineOperationsImpl.java:6517)
at com.aaa.azure.JavaClient.main(JavaClient.java:81)
在azure portal中,我可以看到WorkerRole1_IN_0正在使用此云服务。但它会抛出异常。
有什么想法吗?谢谢高级。
答案 0 :(得分:0)
解释Azure经典门户和Azure新门户之间的区别,它使用不同的模型来创建云服务和虚拟机。
在Azure经典门户上,使用ASM模式(Azure服务管理)创建Azure服务。但是为Azure新门户使用ARM模式(Azure资源管理)。
例如,您可以参考不同模式的REST API来了解获取现有云服务信息的区别,请参阅下文。
Get Role
经典REST API,它与Java包com.microsoft.windowsazure.management.compute
相关。Get information about a virtual machine
REST API,它与Java包com.microsoft.azure.management.compute
相关。因此,根据您的代码,您使用服务管理SDK获取在经典门户上创建的云服务的信息,而不是在新门户上创建的云服务,因为在不同模式下创建的云服务具有不同的模型结构