我正在尝试使用Azure Java SDK自动执行我的azure虚拟机的任务,例如在一天的各个阶段启动和停止它们
我正在查看启动虚拟机的天蓝色文档here
所讨论的方法签名如下
OperationResponse beginStarting(java.lang.String serviceName,
java.lang.String deploymentName,
java.lang.String virtualMachineName)
throws java.io.IOException,
ServiceException
我想知道 - 在哪里可以获取我的虚拟机的azure控制台上的serviceName和deploymentName的值?
我试着查看旧门户网站和新门户网站,但到目前为止我一直无法找到这些值
这个问题看起来像下面的网址上的问题重复,但它不是Azure find deployment name
实际上,当您查看旧门户(https://manage.windowsazure.com)时,上面的链接为获取部署名称提供了正确的答案
但是,如果在旧门户中创建VirtualMachine并在新门户中查看它(https://portal.azure.com) - 它将显示在“虚拟机经典”选项下 . 借助上述链接,我能够使用Java SDK在经典虚拟机上执行操作
如果我在虚拟机选项(不是虚拟机(经典))下的新门户中创建虚拟机,我将无法找到deploymentName或serviceName
因此,要更新问题 - 如何在 new 门户中找到虚拟机的deploymentName和serviceName
另外 - 我注意到SDK的另一件事 - 如果您输入了错误的serviceName - 它会记录部署名称错误 - 这让我在经典虚拟机上停留了一段时间
只是为了结束这个问题为了能够在非经典虚拟机上执行操作 - 使用这个maven依赖
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-mgmt-compute</artifactId>
<version>0.9.0</version>
</dependency>
对于非经典虚拟机上的操作 - 您需要使用Active Directory安全性 - 请参阅此链接 - 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>
对于经典虚拟机上的操作 - 您需要使用证书
2 回答
我没想到你可以使用这个库在
non-classic
虚拟机上执行操作 . 这些VM通过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/) .
最近,azure发布了Java SDK 1.0.0作为LTS版本 . 使用那个SDk .
启动和停止虚拟机
但这些都是封锁电话 . 您可以使用startAsync()方法以异步方式启动它 .