2016-01-09 24 views
2

我试图使用Azure中的Java SDK来为我的蔚蓝的虚拟机,如启动,并在一天的不同阶段停止他们的自动化任务服务名和deploymentName值Azure中的Java SDK - 从何处获取新的门户网站

我一直在寻找为启动虚拟机蔚蓝的文档 here

问题的方法签名如下

OperationResponse beginStarting(java.lang.String serviceName, 
          java.lang.String deploymentName, 
          java.lang.String virtualMachineName) 
        throws java.io.IOException, 
          ServiceException 

我想知道 - 我在哪里可以得到的值本身我的虚拟机的Azure控制台上的rviceName和deploymentName?

我试着找上了老门户和新的门户网站,但至今我一直无法找到这些值

这个问题看起来像在下面的网址复制到这个问题,但它不是 Azure find deployment name

事实上,当你在老门户(https://manage.windowsazure.com) - 上面的链接提供了正确的答案得到一个部署名称

但是,如果你在老门户创建的虚并查看它在新的门户网站( https://portal.azure.com ) - 它显示在Virtual Machine Classic选项下。在上述链接的帮助下,我能够使用Java SDK在经典虚拟机上执行操作。

如果我在虚拟机选项(非虚拟机(经典)选项)下的新门户中创建虚拟机,我无法找到deploymentName或服务名

所以更新的问题 - 一个人如何找到deploymentName和服务名的虚拟机在门户

而且 - 另一件事情,我注意到与SDK - 如果你输入了错误的serviceName - 它记录了部署名称是错误的 - 这让我在cla上有一段时间了SSIC虚拟机

只是收出这个问题 为了能够在非传统虚拟机上执行操作 - 使用maven的依赖

<dependency> 
    <groupId>com.microsoft.azure</groupId> 
    <artifactId>azure-mgmt-compute</artifactId> 
    <version>0.9.0</version> 
</dependency> 

运营非经典的虚拟机 - 你需要使用Active目录安全性 - 看到这个链接 - https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/ 要在经典的虚拟机上执行操作 - 使用maven的依赖

<dependency> 
    <groupId>com.microsoft.azure</groupId> 
    <artifactId>azure-svc-mgmt-compute</artifactId> 
    <version>0.9.0</version> 
</dependency> 

有关CLA操作ssic虚拟机 - 你需要使用证书

回答

1

我还没有与Java SDK(所以我可能完全脱离基地在这里),但我不认为你可以使用这个库在non-classic虚拟机上执行操作。这些虚拟机通过Azure资源管理器进行部署,它们具有完全不同的管理资源的机制。

在这里查看源代码:https://github.com/azure/azure-sdk-for-java,我相信这是您可以找到管理虚拟机的方法:https://github.com/Azure/azure-sdk-for-java/tree/master/resource-management/azure-mgmt-compute/src/main/java/com/microsoft/azure/management/compute

对于您的具体查询,请参阅此处的文档:http://azure.github.io/azure-sdk-for-java/com/microsoft/azure/management/compute/VirtualMachineOperations.html#beginStarting-java.lang.String-java.lang.String-(这里是您可以找到完整文档的地方 - http://azure.github.io/azure-sdk-for-java/)。

+0

嗨Guarav - 这些都是相同的文档和类或多或少。唯一的区别是软件包名称。您的链接是/com/microsoft/azure/management/compute/VirtualMachineOperations.html,我的是com/microsoft/windowsazure/management/compute/VirtualMachineOperations.html – Damien

+1

如果您看到方法签名,它们是不同的。在新世界中,当使用'beginStarting'方法时,您只需提供资源组名称和虚拟机名称即可启动它。 –

+0

道歉 - 现在我明白了。因此,对于新的虚拟机来说,经典方法和方法集有1组方法。感谢您注意到这一点。如果是这种情况,我需要导入两个罐子。我不知道你的情况,但文件很混乱。你知道他们是否有链接到他们的API的“最新”版本? – Damien

0

最近azure已经发布Java SDK 1.0.0作为LTS版本。使用该SDK。

<dependency> 
    <groupId>com.microsoft.azure</groupId> 
    <artifactId>azure</artifactId> 
    <version>1.0.0</version> 
</dependency> 

要启动和停止虚拟机

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId, tenantId, clientKey, AzureEnvironment.AZURE); 
 
    Azure azure = Azure.authenticate(credentials).withSubscription(subscriptionId); 
 

 
azure.virtualMachines().start("resourceGroupName", "vmName"); 
 
azure.virtualMachines().powerOff("resourceGroupName", "vmName"); 
 

 
    azure.virtualMachines().getByResourceGroup("resourceGroupName", "vmName").start(); 
 
    azure.virtualMachines().getByResourceGroup("resourceGroupName", "vmName").powerOff(); 
 
     
 
    

但这些都是阻塞调用。您可以使用startAsync()方法以异步方式启动它。