com.microsoft.windowsazure.exception.ServiceException:ResourceNotFound:在当前部署的服务中找不到角色WorkerRole1_IN_0

时间:2016-06-14 12:28:20

标签: java azure azure-management-api

我在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正在使用此云服务。但它会抛出异常。

有什么想法吗?谢谢高级。

1 个答案:

答案 0 :(得分:0)

解释Azure经典门户和Azure新门户之间的区别,它使用不同的模型来创建云服务和虚拟机。

在Azure经典门户上,使用ASM模式(Azure服务管理)创建Azure服务。但是为Azure新门户使用ARM模式(Azure资源管理)。

例如,您可以参考不同模式的REST API来了解获取现有云服务信息的区别,请参阅下文。

  1. 在ASM模式下使用Get Role经典REST API,它与Java包com.microsoft.windowsazure.management.compute相关。
  2. 在ARM模式下使用Get information about a virtual machine REST API,它与Java包com.microsoft.azure.management.compute相关。
  3. 因此,根据您的代码,您使用服务管理SDK获取在经典门户上创建的云服务的信息,而不是在新门户上创建的云服务,因为在不同模式下创建的云服务具有不同的模型结构